Qt编译符号问题:typeinfo

Qt编译符号问题:typeinfo

Q:Qt 程序编译时未找到 typeinfo 相关符号问题
产生原因:在编译 Base 时,默认使用了编译参数 "-fno-rtti" 与编译 Qt 程序时使用的编译参数不一致。
修正方法:在 Qt 程序中添加 "-fno-rtti" 编译参数,保持 Base 与 Qt 编译参数一致。

    • Related Articles

    • 符号表导出

      Q:如何导出 BSP 驱动中的 API 给到用户使用? BSP 驱动导出 API 给用户使用,可以通过 API_SymbolAdd 导出符号表功能,建议统一在 bspBoardSymbolInit() 调用,使用示例如图所示。其中要导出的 API 为 “fmqlIntAffinity”,第一参数是名词,第二参数是函数 API 地址,第三个参数是属性,这里选择可执行。 导出 BSP 驱动 API                                            ...
    • can not find symbol:xxx

      问:can not find symbol:xxx 在不使用第三方库时使用 Posix 接口进行线程创建,即调用 posix_create 函数时,程序在系统下运行时显示如 图1 错误,提醒无法找到以上函数的符号。 图 1.报错信息 在初始化函数 API_ThreadInit 中的 _TCBBuild 构建 TCP 属性块函数中有对钩子函数的使用。图2 图 2.报错函数位置 通过源码追踪,发现 Hook 函数并没有进行函数底层实现,且没有编译到 Base 工程的 symbol.ld ...
    • 找不到符号 can not find symbol:xxx 分析之二(库路径未添加或库未上传)

      找不到符号 can not find symbol:xxx 分析之二(库路径未添加或库未上传) Q:使用 RealEvo-IDE(以下简称IDE)开发程序时,在应用程序中调用了一个第三方的库,编译后没有任何 warning 调用第三方库的函数示例代码如 程序清单 1.1所示。 程序清单 1.1 示例代码 #include <stdio.h> void clientShare(void); int main (int argc, char **argv) { clientShare(); ...
    • C++编译选项 -fno-rtti 和 -frtti 浅析

      问题现象:       客户在移植 C++ 程序的时候遇到了一个符号找不到的问题: 问题描述:       这个类定义在一个静态库中,静态库正常编译,在 Linux 下正常。       查看符号表确实没有这个符号,于是对比了一下编译选项,IDE 下默认是 -fno-exceptions -fno-rtti,打开 -frtti 选项后编译使用正常,对比两次的符号表。       (Makefile 中修改 C++ 编译选项)       打开 -frtti ...
    • can not find symbol:xxx(C++)

      Q:CPP 程序调用 C 函数编译无问题,运行找不到符号? c++ 中支持函数重载,所以 c 和 c++ 中对同一个函数经过编译后生成的函数名不同,这就会导致一个问题。如果在 c++ 中调用一个使用 c 语言编写模块中的某个函数,c++ 是按照 c++ 的名称修饰方式来查找并链接这个函数,就会发生链接错误。 c函数:void func(),被编译成函数:func c++函数: void func(){},被编译成函数:_Z4funcv 解决方法: 方法一: 可以在c++test.cpp文件中添加 ...