【发布时间】:2011-07-23 15:13:45
【问题描述】:
我最近在处理一个 Visual Studio 2008 项目时遇到了一个奇怪的问题。
我正在尝试编译一个使用来自另一个静态库的函数的新静态库。 (假设Lib1是我的静态库项目,Lib2是Lib1所依赖的lib文件)。
我能够毫无问题地构建 lib1;它包含了lib2的头文件并调用了它的函数,没有任何问题。
问题是当我构建一个单独的测试项目时,它以 Lib1 作为依赖项;它不会构建,我得到链接器错误。未解析的外部是我试图在 Lib1 中调用的来自 Lib2 的函数。
当我在我的测试项目中也包含 Lib2 时,这一切都已解决。
当然,这一切对我来说都是有意义的;我可以测试 Lib2 没有内置到 Lib1 中。..
我的问题是:有没有办法做到这一点?理想情况下,我希望能够在不需要 Lib2 的情况下将 Lib1 部署为独立的 lib。 (Lib2实际上只是Windows平台SDK的一个Lib,所以没什么大不了的……)
这是不允许的,因为它会允许人们将第三方库“隐藏”在自己的库中,还是什么?
解决这个问题的专业方法是什么?
谢谢!
--R
【问题讨论】:
-
在将 Lib1 包含在项目中之前,您是否完全编译了它?
-
问题解决了吗?你做了什么?
-
老实说,我不记得了;这是很久以前的事了。我想我只是记录了依赖关系,但我不记得具体细节了,抱歉。
标签: c++ visual-studio static-libraries