C++中关于无法解析的外部符号问题LNK2019问题的总结

网上一般有很全面的解决方法,最近恰好本道长也遇到了这种问题,也恰好解决了,这种问题应该算作配置问题,而非程序本身问题,多数是因为接手了生疏的程序导致,此问题看上去很简单,但木有经验的话很难迅速找到解决方法,所以更多的是着急,在此做一个记录。这个异常是出现在链接阶段,也就是源代码跟lib或dll链接时出现的,主要是因为以下两个原因:

1.头文件中有函数声明,而cpp文件中没写实现。(这种情况出现的概率极小,有哪个第三方库的开发这会这么大意呢?)

2.就是本道长遇到的问题:忘记在项目-》属性-》配置属性-》链接器-》输入-》附加依赖项中加入相应的lib。这里要重点说明一下如何确定找不到外部符号的.h文件属于哪个lib库的问题,我的做法是:看此头文件是include下的哪个目录,通常情况下,这个目录就是lib的文件名,不确定的话,可以使用everything去以目录名称.lib搜索一下加以核实。

另外,在项目配置的时候,我们时常看到$(SolutionDir)include这样的字符串,实际上$(SolutionDir)就是*.sln所在的目录,是VS自定义的宏。

时间: 2025-01-04 03:29:55

C++中关于无法解析的外部符号问题LNK2019问题的总结的相关文章

关于"无法解析的外部符号"问题的解决

当出现"无法解析的外部符号"的问题时,可能的原因网上已经解释过很多,今天在这里列举一个我工作中遇到的新的造成该问题的场景: 我的工程B引用了工程A的静态库,工程A生成成功,但是将A.lib放到工程B中时,总是报A.lib的错(Class1::func1()在Class2::func2()中被引用),排查了好多可能,将.lib库和引用的程序文件全都重新替换一次仍旧没有用,后来发现是因为一个非常简单的原因:工程A中没有添加Class1.h和Class2.cpp,虽然这两个文件放在工程A的目

错误 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解决.

无法解析的外部符号 [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

C++中无法解析的外部符号错误

? 在编译C++程序的时候,如果引用了对应的头文件,但是调用一个函数的时候仍然出现" 无法解析的外部符号错误"的编译错误,比如: 无法解析的外部符号[email protected],该符号在函数 _main 中被引用 ? 那是因为在项目中没有引用.lib文件. 有两种方式解决此问题: 在项目属性->编译器->输入->附加依赖项 中加入.lib文件. ? 代码头部引入.lib文件,比如: #pragma?comment(lib,?"shlwapi"

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

1>sockett.obj : error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 _wmain 中被引用 解决方法: 没有加入相应的链接库,winmm.lib.在头文件添加 #pragma comment(lib,"ws2_32.lib") ws2_32.lib文件,提供了对以下网络相关API的支持,若使用其中的API,则应该将ws2_32.lib加入工程(否则需要动态载入ws2_32.dll).有时无法直接对头文件进行修改.在引

无法解析的外部符号 _ ,该符号在函数 " __main中被引用 && This function or variable may be unsafe.

加上winsock2的运行库看看吧,一般不用加的啊 #pragma comment(lib,"Ws2_32.lib") 应该就没有问题了吧^_^ 以下为转载 http://blog.chinaunix.net/uid-20672257-id-2955771.html 1.将过去的工程用VS2010打开的时候.你有可能会遇到一大堆的警告:warning C4996. 比如:warning C4996: 'sprintf': This function or variable may be

<转>关于 error LNK2019:无法解析的外部符号 ,该符号在函数**中被引用的思考

错误提示信息摘抄如下: -------------------------------------------------------------------------------------------------- 错误         12     error LNK2019: 无法解析的外部符号 [email protected], 该符号在函数"public: class activemq::util::Guid & __thiscall activemq::util::Gu

使用SDL2出现 “error LNK2019: 无法解析的外部符号 _SDL_main,该符号在函数 _main 中被引用” 时的可能错误记录

这几天在使用SDL2,之前一直都没有错,直到上午把项目搬了个地方.结果一直出现 “error LNK2019: 无法解析的外部符号 _SDL_main,该符号在函数 _main 中被引用” . 看了网上的方法都说是没有正确定义 main 函数 ,这是SDL2main.lib指定需要的函数.结果我把他定义在了"xx.h"这样的头文件中. 原来我一直没理解头文件和源文件的重要区别.把 main 函数定义在 "xx.cpp" 这样的源文件中就可以正确编译了. 看来还需要再

error LNK2019: 无法解析的外部符号 __imp_GetUserObjectInformationW,该符号在函数 OPENSSL_isservice 中被引用

错误 18 error LNK2019: 无法解析的外部符号 __imp_GetUserObjectInformationW,该符号在函数 OPENSSL_isservice 中被引用 E:\FileRecv\SimpleAuthenticator(1)\SimpleAuthenticator\SimpleAuthenticator\libeay64.lib(cryptlib.obj) SimpleAuthenticator 错误 19 error LNK2019: 无法解析的外部符号 __im