将静态库与其他静态库链接
Linking static lib with other static libs
我正在编写一个需要处理XML的静态库。我希望它包含开箱即用的所有必要内容,但我不知道如何使其他静态库链接到它,即 libxml2。
我将 -c
标志传递给 gcc 以生成ar
然后用于创建库的.o
。我必须通过什么魔法标志组合才能让我的静态库吞下 libxml2?
图书馆不会吞噬其他库。 我能想到的有两种解决方案可以做你想做的事。
- 与最终目标中的两个库链接,指定新的首先是图书馆。
- 复制 libxml2 库,只需使用 lib 工具以将对象添加到其中。
可悲的是,对我来说最有效的是从静态库中提取所有.o
,然后将它们包含在您的.o
中以制作单个.a
因此,您可以ar t libxml2.a
查看libxml2.a
的内容为简单起见,假设它只包含:xml2a.o
和xml2b.o
您想将这些与mine.o
结合起来以制作mine.a
你需要先做ar x libxml2.a
才能出去xml2a.o
xml2b.o
然后做ar cr mine.a mine.o xml2a.o xml2b.o
对最广泛使用的ar
命令的简单解释,尽管我可能已经总结了您从中得到的内容。
手动将对象合并到新的静态库实例中:
ar -x libx.a
ar -x liby.a
ar -c libz.a *.o
相关文章:
- 基于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中静态链接而不是动态链接?