链接库时未解析的外部符号

Unresolved external symbol when linking my library

本文关键字:外部 符号 链接      更新时间:2023-10-16

我已经用VS2010编译了自己的库文件(.lib),但当我试图像一样引用它时

#pragma comment(lib,"path/to/lib.lib")

我不断得到未解析的外部符号。。。我做错了什么?到目前为止,#pragma注释(lib,"*.lib")适用于任何库,我也尝试在设置下链接它,但没有成功。

1)打开VS命令控制台(Tools/Visual Studio命令提示符)。

2) 使用cd命令更改为包含有问题库的目录。

3) 输入:

dumpbin /all my_lib_name.lib > lib.txt

my_lib_name.lib替换为库的名称。(对于大型库,您需要将输出写入文本文件lib.txt

4) 打开这个新创建的lib.txt以查看库的内容。更多详细信息可以在这里找到。

  1. 打开两个目录。
    • 第一个失败的包含库
    • 第二个包含带编译器的二进制目录(对我来说是C:\Program Files\Microsoft Visual Studio 9.0\VC)
  2. 将mspdb*.dll(从第一个目录)复制到带有库的目录
  3. 在库目录中打开cmd.exe
  4. 写入"%FIRST_DIRECTORY/bin/dumpbin.exe"/ALL library.lib>lib.txt(例如,我写的是"C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\dumpbin.exe"/ALL MyTestLibrary.lib>lib.txt)
  5. 搜索所需的方法(按类名或方法名)

如果你没有找到-开发者没有写。或者方法实现是内联的

如果第二个-你应该告诉IDE哪里是源。顺便说一句,库编译项目中并没有通过用户头访问的方法可以是内联的。你所能做的就是优化速度-快速呼叫