【发布时间】:2016-06-19 16:46:31
【问题描述】:
我有一个 C++ 程序 ProgramA,它是一个可执行文件,它有一个静态库 LibraryB,它又依赖于另一个未在我的项目中编译的静态库(实际上是 libcurl)。
现在,在 OSX 上这可以正常工作。我确保链接 libcurl 和 ProgramA 和 LibraryB 编译并且 ProgramA 运行良好。
但是,在 Windows 上,我不断收到链接错误:
error LNK2019: unresolved external symbol __imp_curl_global_init referenced in function
我已经两次和三次检查我正在将 libcurl 静态库链接到项目中。实际上,在 Visual Studio 解决方案中,我有另一个可执行文件 ProgramB,它不使用 LibraryB,而是直接引用 libcurl 库,并且工作正常。除非我包含 LibraryB,否则未解决的错误会再次出现。
建议?想法?谢谢!
【问题讨论】:
-
听起来你正在编译动态导入但链接到静态库。
-
点对点,在我的项目中定义 CURL_STATICLIB 解决了这个问题。谢谢!
-
为了将来参考,未解析符号开头的
__imp_是它泄露的原因。
标签: c++ visual-studio linker linker-errors