如何在Eclipse CDT中将静态库链接到静态库
How to link static library into static library in Eclipse CDT
我有三个项目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,您可以进入option->C/c++ Build->setting->XXX C link ->Libraries,更改A和B的顺序。
另一种方法:使用-u选项。
看到这个:http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html但是,我从来没有成功过。谁能告诉我如何使用-u选项?
一个静态库不能与另一个静态库链接。我认为因为静态库不是可执行代码,所以完整的链接过程(主要是引用解析)没有完成。
相关文章:
- 基于boost的程序的静态链接——zlib问题
- 使用gcc从静态链接的文件中查找可选符号
- 使用转换器提升 Python 问题 - 静态链接
- C++实用程序::转换在静态链接库中不起作用
- 将源中的 GLEW 与 cmake 静态链接
- 在发布模式下启动使用库的静态链接编译的应用程序时出错
- libavdevice 和 x11 的静态链接库应该以什么顺序链接?
- 静态链接启用 PIC 的库时出现链接器 PIC 错误
- 静态链接库时,收到链接器错误:找不到 -lgcc_s
- 静态链接 glibc & boost_python36 for Python extension
- 我可以在C++中配置静态链接吗?
- 协议缓冲区的静态链接会导致与现有符号冲突
- C++标准是否定义了结构中成员函数的函数内定义是否必须具有静态链接?
- 静态链接 Visual Studio dll 到动态链接的 sfml 项目
- 我可以加载与库静态链接的 dll 吗?
- 静态链接MSVC库,动态链接Qt
- C++:找不到静态链接
- OpenSSL AES仅适用于某些计算机,即使具有静态链接也是如此
- CURL 静态链接未解析的外部符号
- 如何强制Windows.h在Visual Studio中静态链接而不是动态链接?