gpt4 book ai didi

c++ - 如何在 Eclipse CDT 中将静态库链接到静态库

转载 作者:IT王子 更新时间:2023-10-29 01:24:46 28 4
gpt4 key购买 nike

我有 3 个项目 A、B 和 C。A 是通用的,被 B 使用,最终被 C 使用。B 比较特殊,目前只有 C 使用。

现在,因为我希望 A 和 B 尽可能地被重用,所以我认为它们都是静态库。

所以我将 A 和 B 链接到静态库,将 C 链接到可执行文件,但是当我想链接 C它给了我一些关于 A 函数的 undefined reference 错误。所以我将库 A 添加到链接器选项来解决这个问题,但它没有帮助。

所以我想:当我想部署 B 时,我也必须部署 A 才能链接。有没有办法将静态库 A 链接到静态库 B,这样我就不必部署 2 个文件?

如果是这样,我该如何使用 Eclipse CDT 实现这一点,因为我找不到为归档程序定义其他目标的地方。

添加

我在 linux 下工作,但这些东西也应该在 windows 下工作。但主要是我需要一个 linux 解决方案来继续开发。

编辑

现在我通过将 A 和 B 链接到静态库然后使用剩余的 *.o 文件将它们链接到可执行文件来“解决”了这个问题,但我认为这不是很好。

最佳答案

更改您的链接顺序。C使用B,B使用A,C不会直接使用A吧?

你写:

gcc -o C -lA -lB

它不会起作用。你写

gcc -o C -lB -lA

有效。

如果是 CDT,您可以转到选项->C/C++ 构建->设置->XXX C 链接器->库,然后更改 A 和 B 的顺序。

另一种方式:使用 -u 选项。

看这个: http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html但是,我从来没有成功过。谁能告诉我如何使用 -u 选项?

关于c++ - 如何在 Eclipse CDT 中将静态库链接到静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7322781/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com