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

时间:2012-07-31 09:27:37

标签: c++ visual-studio-2010 static-libraries static-linking

我用VS2010编译了我自己的库文件(.lib),但是当我尝试像

那样引用它时
#pragma comment(lib,"path/to/lib.lib")

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

2 个答案:

答案 0 :(得分:1)

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以查看库的内容。 可以找到更多详细信息here

答案 1 :(得分:0)

  1. 打开两个目录。
    • 第一个包含失败的库
    • 第二个包含带编译器的二进制目录(对我来说是C:\ Program Files \ Microsoft Visual Studio 9.0 \ VC)
  2. 将mspdb * .dll(从第一个目录)复制到包含库
  3. 的目录
  4. 在库目录中打开cmd.exe
  5. 写“%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
  6. 搜索您想要的方法(按类名或方法名称)
  7. 如果你没找到 - 开发人员不要写它。或者方法实现是内联的

    如果第二 - 你应该告诉IDE whereisis来源。 BTW请记住,库编译项目中没有通过用户头可访问的方法可以是内联的。你所能做的就是优化速度 - 快速通话。