2009-12-10 60 views
1

我将一些Visual Studio 2008/VC9的东西移植到Code :: Blocks/MinGW,并且出于某种原因,链接器无法从工作空间中的其他项目中找到静态库。链接器无法在同一目录中找到静态库

在Visual Studio 2008中,我可以将静态lib项目设置为依赖项,并且它将以正确的顺序构建(即在连接其他项目之前需要构建静态库),并链接正确的库组态。

我在Code :: Blocks中找不到这样的选项,所以我确保先显式构建静态库(libcommon.a),然后在“构建选项”下为其他项目添加“libcommon.a”在“链接器设置”中。在某文件位于同一目录中的项目文件,但我还是从其他项目的链接得到一个错误,说他们不能找到它......

ld.exe找不到-lcommon

我在做什么,所以它无法找到图书馆,即使它右边的项目文件?

还有更好的方法来模拟单个解决方案/工作区内的Visual Studio依赖关系吗?

+0

您的错误消息提到“-lcommon”,但您说您的库名为“libcommon.a”。我不熟悉Code :: Blocks; “-lcommon”翻译成“libcommon.a”吗?您始终可以运行文件监视器并查看链接程序正在查找的文件(以及在哪个目录中)。 – Luke 2009-12-12 18:54:22

+0

嗯,我特别告诉代码块链接“libcommon.a”,它给了链接器“lcommon”,所以我要去与编译器不期望进行“lib”和“.a”扩展名。其他库工作正常,文件名与链接程序获取的内容相同。 – 2009-12-12 19:10:32

回答

2

显然,包含项目文件的目录不包含在链接器搜索路径中,需要通过将“。\”添加到包含项目库文件的目录列表中来显式定义。