QT出现问题 无法解析的外部符号 未找到文件**.obj

转载地址:http://blog.csdn.net/hzt12345hf/article/details/52398000

无法解析的外部符号出现可能的原因:
[0]出现无法解析可能是因为lib文件不正确,比如64位的编译配置,结果使用的是32位的lib包. 


[1]只写了类声明,但还没有写实现类,造成调用时无法解析 


[2]声明和定义没有统一,造成链接不一致,无法解析 


[3]没有在项目属性页的链接器的命令行选项加入相应的类包。 


[4]没有在c++包含目录和库目录加入相应的类包路径 


[5]在测试工程中被测文件目录可能需要包含被测类的cpp定义文件 


[6]ICE接口测试时,无法解析可能因为被测文件没有包含进相关的cpp文件,另外,在TestSuite_ProjectRun.h文件中需要包含IProjectRun.h头文件,及相关的头文件(举例)。


[7]import相关的无法解析内容,解决办法是在链接器的依赖项中加入相应的动态库


[8]出现如下错误的原因一般是动态库没有包进来。__imp
ProjectRun.obj : error LNK2019: 无法解析的外部符号 __imp__StartHistoryLocalModule,该符号在函数 “protected: virtual int __thiscall HiRTDB::CProjectRun::DoStart(void)” (?DoStart@CProjectRun@HiRTDB@@MAEHXZ) 中被引用

[9]error LNK2001: 无法解析的外部符号 __imp___CrtDbgReportW
工程属性,C/C++,代码生成,运行时库选择MDd,


[9]无法解析的外部符号”_declspec(dllimport) public: int __thiscall HiRTDB::CTagTree::GetObjectA(int,struct HiRTDB::SBaseReadProps const &,struct HiRTDB::SBaseReadValues &)” (__imp GetObjectA@CTagTree@HiRTDB@@QAEHHABUSBaseReadProps@2@AAUSBaseReadValues@2@@Z),该符号在函数”public: int __thiscall HiRTDB::CStringImpl::Get(int,struct HiRTDB::SStringReadProps const &,struct HiRTDB::SStringReadValues &)” (?Get@CStringImpl@HiRTDB@@QAEHHABUSStringReadProps@2@AAUSStringReadValues@2@@Z) 中被引用

原因可能是工程配置文件中有多余选项,请参考其他模块的配置选项,不要有多余配置。


自己编了个小程序,一开始编译忘记在.pro工程中加入类库,所以导致出现如下图所示错误,加上类库后清除重新编译,发现还是同样的错误,百思不解,搜百度有网友提议删除目录下生成的调试文件夹,然后尝试过后发现此方法可行,这里做个记录,以防以后又发生这样的错误
这里写图片描述


很庆幸我的问题在[0]出现无法解析可能是因为lib文件不正确,比如64位的编译配置,结果使用的是32位的lib包. 

因为是从前辈那获取的资源,这里要感谢一下"星星的眼睛"<446415168@qq.com>;,他给的资源是Qt4.8+32位

我现有的系统是Qt5.2+win10_64,

另外Qt5 取消了

    //QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
    //QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));这两个函数。

可利用

QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));这一个函数代替


  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
obj文件无法解析外部符号,可能是由于使用了不同的构建套件和编译器导致的。在引用中提到,屏蔽掉kernel.dll中的encodepointer和decodepointer,并使用crack.obj里的符号替代。这可能意味着在构建过程中,对这些符号进行了一些修改或替换。在引用中提到,使用了visual 2015 x32和visual 2017 x64两种构建方式。根据这些信息,无法解析外部符号可能与这些修改、替换和不同的构建方式有关。具体而言,可能是由于编译器无法找到、连接或识别这些符号所导致的。为了解决这个问题,可以尝试以下几点: 1. 确认编译器和构建套件的匹配:请确保所使用的编译器和构建套件是匹配的,即编译器版本和构建套件的版本是一致的。如果版本不匹配,可能会导致无法解析外部符号问题。 2. 检查符号定义和声明:请仔细检查相关的符号定义和声明,确保它们与使用它们的地方一致。可能存在符号定义缺失、命名错误或声明不正确等问题,这可能导致编译器无法解析这些外部符号。 3. 检查链接选项和库依赖:请确保正确设置了链接选项和库依赖,以便编译器能够找到和连接所需的符号。如果缺少必要的库文件或链接选项不正确,可能会导致无法解析外部符号问题。 总之,无法解析外部符号可能与构建套件、编译器版本、符号定义和声明、链接选项和库依赖等因素有关。通过检查和调整这些方面,可以解决这个问题。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [crack.obj目标文件](https://download.csdn.net/download/wwyyxx26/9533080)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Qt编译报错:无法解析外部符号未找到文件main.obj](https://blog.csdn.net/m0_37972874/article/details/130655026)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值