没有#pragma comment lib 命令的未解决的外部符号错误
Unresolved external symbol errors without #pragma comment lib command
我在我的 VS2008 解决方案中添加了一个项目,并通过项目设置 window 在我的启动项目中设置了对这个新添加项目的依赖。问题是我到处都有 unresolved external symbol
错误,但是一旦我使用我的库的函数在文件中写入 #pragma comment (lib, "path_to/my_lib.lib")
行,一切就都正常了。具体来说,我在 include
之后添加了该行
#include "path_to/my_lib.h"
#pragma comment (lib, "path_to/my_lib.lib")
我读到在项目设置中设置依赖关系 window 和写行 #pragma comment (lib, "path_to/my_lib.lib")
是一回事。为什么我有所有未解决的外部符号错误而没有在代码中写入该特定行?是因为它在 VS2008 选项的 VC++ 目录中给出的不同文件夹中寻找这种依赖关系吗?
我不确定我是否理解你的问题。
“...是同一件事...” 不,这不是一回事。
项目依赖关系 如果您的 selected 项目 P0 依赖于项目 DLL1 但不依赖于项目 DLL3 ,IDE 正在更新(构建)P0 之前的 DLL1。请参见下面的第一张图片。
链接器依赖项(link 到库) 使用 #pragam comment(lib...
或转到项目设置 select 图书馆。这些库不一定属于您的解决方案。请参见下面的第二张图片。
错误的项目依赖项可能会产生 link 错误,例如:
- 库是您解决方案的一部分
- 您修改了库的接口(例如,更改了函数签名)
- 您修改项目以适应新界面(使用新签名调用函数)
- 您项目的依赖项未设置为首先构建(更新)库项目;因此它尝试 link 到旧库(旧函数签名)
我在我的 VS2008 解决方案中添加了一个项目,并通过项目设置 window 在我的启动项目中设置了对这个新添加项目的依赖。问题是我到处都有 unresolved external symbol
错误,但是一旦我使用我的库的函数在文件中写入 #pragma comment (lib, "path_to/my_lib.lib")
行,一切就都正常了。具体来说,我在 include
#include "path_to/my_lib.h"
#pragma comment (lib, "path_to/my_lib.lib")
我读到在项目设置中设置依赖关系 window 和写行 #pragma comment (lib, "path_to/my_lib.lib")
是一回事。为什么我有所有未解决的外部符号错误而没有在代码中写入该特定行?是因为它在 VS2008 选项的 VC++ 目录中给出的不同文件夹中寻找这种依赖关系吗?
我不确定我是否理解你的问题。
“...是同一件事...” 不,这不是一回事。
项目依赖关系 如果您的 selected 项目 P0 依赖于项目 DLL1 但不依赖于项目 DLL3 ,IDE 正在更新(构建)P0 之前的 DLL1。请参见下面的第一张图片。
链接器依赖项(link 到库) 使用 #pragam comment(lib...
或转到项目设置 select 图书馆。这些库不一定属于您的解决方案。请参见下面的第二张图片。
错误的项目依赖项可能会产生 link 错误,例如:
- 库是您解决方案的一部分
- 您修改了库的接口(例如,更改了函数签名)
- 您修改项目以适应新界面(使用新签名调用函数)
- 您项目的依赖项未设置为首先构建(更新)库项目;因此它尝试 link 到旧库(旧函数签名)