未解析的外部符号编译错误

时间:2012-04-21 05:25:12

标签: c++ compiler-warnings

我尝试新库时经常出现此问题。这次我使用PointGrey Camera并尝试使用它的API库(一些dll,lib,头文件)。大多数情况下,通过配置SDK(我正在使用VS2008)工具/选项/ VC ++目录/包含文件(/库文件)(/可执行文件)来解决问题, 我也尝试过项目配置: +项目属性/链接器/输入/其他依赖项 +项目属性/链接器/常规/附加库目录

这一次,有了这一切,我仍然有错误。

有没有一般方法来处理这个问题?

我是否需要从VS2008了解此诊断?

Error   1   error LNK2019: unresolved external symbol __imp__flycaptureGetPacketInfo referenced in function "enum FlyCaptureError __cdecl initializeStandardEventSizes(void *,struct FlyCaptureImageEvent * const)" (?initializeStandardEventSizes@@YA?AW4FlyCaptureError@@PAXQAUFlyCaptureImageEvent@@@Z)  main_2.obj  test

使用Dependencies Walker等分析工具确保很好地解决这些问题吗?

2 个答案:

答案 0 :(得分:1)

此消息表示您在代码中使用了符号(函数或变量)。这个符号可能是在某处声明的(很可能是在代码中包含的头文件中),否则就会出现编译错误。当链接器搜索符号时(在你的目标文件和你指示它查找的lib文件中)它找不到它。

这通常是因为您忘记让链接器知道您希望它搜索的lib。

大多数库都带有一组指令,可以帮助您正确设置所有内容并避免遇到这些问题。

答案 1 :(得分:0)

这个问题最近已经解决了。我安装了PointGrey的不兼容库。这就是为什么它不起作用。但这说明了“不兼容的图书馆”和“未解决的施加符号错误”之间的某些内容