C++出现无法解析的外部符号的几种情况

转自:http://blog.csdn.net/enotswn/article/details/5934938

[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)" ([email protected]@[email protected]@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 &)" ([email protected]@[email protected]@[email protected]@[email protected]@@Z),该符号在函数"public: int __thiscall HiRTDB::CStringImpl::Get(int,struct HiRTDB::SStringReadProps const &,struct HiRTDB::SStringReadValues &)" ([email protected]@[email protected]@[email protected]@[email protected]@@Z) 中被引用

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

时间: 2024-10-12 21:19:01

C++出现无法解析的外部符号的几种情况的相关文章

Error LNK2001 无法解析的外部符号 的几种情况及解决办法

最近遇到的关于VS里编译出现的“无法解析的外部符号”问题,在网上寻求解决办=办法时查到下面的博客内容,作者讲解的挺全面的,作为收藏以备将来查询. 原文http://blog.csdn.net/shenyulv/article/details/6699836 VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过.产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然.如果不深入地学习和理解

LNK2001: 无法解析的外部符号的几种情况

一般来说,我们引用第三方库时,需要进行指定依赖项配置,若没有进行相关配置,则编译器会出现“LNK2001: 无法解析的外部符号”错误. 这个是最常见的问题,具体步骤:项目.属性.链接器.常规.附加库目录:填写附加依赖库所在目录 分号间隔多项项目.属性.链接器.输入.附加依赖项:填写附加依赖库的名字.lib 空格或分号间隔多项 若已经按照上述步骤进行配置,但编译器还是报错,可能情况如下: 1.编译lib库和引用lib库平台不一致 lib库采用的编译平台和引用该lib的工程的编译平不兼容导致的.比如

C++工程编译之“error LNK2001: 无法解析的外部符号”

今天一整天都在折腾“error LNK2001: 无法解析的外部符号”,就在头疼不已的时候,总算是找到问题原因了:各个动态链接库的编译方式必须统一才行,要不然很容易对库函数的引用产生冲突.简单来说就是,如果使用的第三方函数库编译方式采用/MD,那么主工程也应该使用/MD.我使用了libevent,而主工程默认采用/MT,所以需要忽略一大堆的函数库,我还纳闷呢,怎么会这么奇怪!!今天总算是解决了长久以来的困惑了. 下面引用一篇文章的描述:[Z]VC运行库版本不同导致链接.LIB静态库时发生重复定义

VS常见错误之一:error LNK2019: 无法解析的外部符号

由于经常使用VS的开发环境,所以经常遇到一些错误提示,其中error LNK2019是很常见的一个报错.今天将此错误的原因和常见解决办法根据自己的经验小小总结一下. 问题样式: 1>SingleView.obj : error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 "protected: int __thiscall CSingleView::CreateViewGLContext(struct HDC__ *)" (?    

错误 1 error LNK2019: 无法解析的外部符号 __imp__pthread_create,该符号在函数 _main 中被引用 解决方法

晚上花几分钟在windows下测了下pthread的用法,出现错误 1 error LNK2019: 无法解析的外部符号 __imp__pthread_create,该符号在函数 _main 中被引用 经网上搜,反正都没解决,其中一个说引入#pragma comment(lib, "pthreadVC2.lib")后解决,但笔者遇到的不是这个原因,而是版本问题.可参考http://www.cnblogs.com/zhjh256/p/6364777.html解决.

“error LNK2019: 无法解析的外部符号”之分析

最近在用VS 2008开发,初学遇到不少问题,最头疼的问题之一就是:LNK2019. 百度一下讲的并不够全面,反正都没解决我的问题. error LNK2019问题在VC 6.0中是error LNK2001: unresolved external symbol问题,可能错误号改了. 编译时出现类似这样的错误:Dlgcode.obj : error LNK2019: 无法解析的外部符号 _readRegmark,该符号在函数 [email protected] 中被引用.这种错误的本质是链接器

error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 ___tmainCR...(转)

一,问题描述 MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 ___tmainCRTStartup 中被引用  Debug\jk.exe : fatal error LNK1120: 1 个无法解析的外部命令 error LNK2001: unresolved external symbol [email protected] debug/main.exe:fatal error LNK 1

cocos2dx--cocos2dx3.1.1运行报无法解析的外部符号

使用cocos2dx3.1.1和VS2012 新建了一个名为test的工程,放在D:\cocos2dx\cocos2d-x-3.1.1\projects下 编译通过,没问题 用cocostudio的场景编辑器做了个场景, 在HelloWorldScene.h中加入 #include "cocostudio/Cocostudio.h" using namespace cocostudio; 无法包含cocostudio/Cocostudio.h 右键test工程-->属性-->

无法解析的外部符号 [email protected],该符号在函数 ___tmainCRTStartup 中被引用

一,问题描述MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 ___tmainCRTStartup 中被引用 Debug\jk.exe : fatal error LNK1120: 1 个无法解析的外部命令 error LNK2001: unresolved external symbol [email protected]在自己创建新工程的时候经常在开始选择win32控制台程序还是win32