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

时间:2014-01-16 22:38:01

标签: c++ gcc mingw static-linking

我写了一个静态库(在Windows 7 for x64中使用TDM-gcc 4.8.1编译),它依赖于其他静态库。将库(语言环境和系统)提升为特定的。 由于我正在构建一个静态库,我认为我所依赖的库会自动包含在我的最终.a中,特别是因为我在我的代码中使用它们。

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

有没有办法解决这个问题?

任何帮助都很高兴。谢谢

编辑: 我不够小心,因为我现在知道导致问题的原因。我正在使用代码块,并且在项目专业中声明了构建存档的所有必要参数。但是在构建我的库时,代码块甚至不会调用链接器。相反,它调用ar.exe并传递我项目的所有目标文件。这样,就不会包含任何外部库。所以,我也希望能告诉代码块以正确的方式构建库..

1 个答案:

答案 0 :(得分:4)

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