链接自身依赖于静态库的静态库时未定义的引用

undefined references when linking own static library that itself depends on static libraries

本文关键字:静态 未定义 引用 链接 依赖于      更新时间:2023-10-16

我写了一个静态库(在Windows 7 for x64中使用TDM gcc 4.8.1编译),它依赖于其他静态库。Boost库(区域设置和系统)是特定的。由于我正在构建一个静态库,我认为我所依赖的库会自动包含在我的final.a中,尤其是因为我在代码中使用了它们。

但是,当我试图构建一个静态链接到前面提到的库的可执行文件时,仍然存在对一些boost部分的未定义引用,这些部分肯定在我的库中使用。

有办法解决这个问题吗?

任何帮助都将不胜感激。谢谢

编辑:我还不够小心,因为我现在知道问题的原因了。我使用的是代码块,构建归档所需的所有参数都在项目属性中声明。但是在构建我的库时,代码块甚至不调用链接器。相反,它调用ar.exe并传递我项目的所有对象文件。这样,就不会包含任何外部库。所以,我也一直在寻找,告诉代码块以正确的方式构建库。。

您的可执行文件需要链接到所有相关库,包括它直接依赖的库,以及它间接依赖的库。当您链接静态库时,通常不会在其中嵌入其他静态库。