如何创建自动链接到动态库的静态库
How do I create a static library which automatically links to a dynamic library?
我维护我们的内部基础设施库 - 我们称之为libcluracan
。此库必须静态链接,因为它不存在于使用代码的外部计算机上。
这意味着我不是使用链接器创建libcluracan.so
文件,而是使用 ar
命令创建一个libcluracan.a
文件
现在我正在尝试向libcluracan
添加一些新功能,但它需要与外部库链接 - 特别是-lfltk
,但细节并不重要。重要的是,我可以假设外部计算机具有此库(以及我需要的任何其他公开可用的库)。
最大的问题是我无法改变内部程序员编译(嗯,链接)代码的方式。
如果我们一直在使用动态libcluracan.so
库,我只会将-lfltk
添加到链接器中并忘记它 - 程序员将继续与-lcluracan
链接并自动-lfltk
。
我需要找到一种方法来对我们的静态libcluracan.a
库做同样的事情。
博士
有没有办法创建一个静态.a
库,该库在使用时自动链接到另一个动态.so
库?
最大的问题是我无法改变内部程序员编译(嗯,链接)代码的方式。
这确实是一个大问题。您的内部程序员应该使用make
(或类似的自动化构建系统),并且更改是微不足道的。
在任意 UNIX 系统上无法实现您想要的。
如果你使用的是GNU工具链,特别是GNU-ld或gold
,那么你可以通过与libcluracan.so
链接来实现你想要的,其中libcluracan.so
不是一个共享库,而是一个链接器脚本,看起来像这样:
GROUP ( libcluracan.a libfltk.so )
相关文章:
- g++用户定义的动态链接库上的全局new和delete运算符
- 如何使用C++导出制作动态链接库
- 链接 c++ 动态库一直失败
- 如果包含映射的静态库与可执行文件和动态库链接,静态映射(变量)是否会被多次释放?
- 使用动态链接加载程序 <dlfcn.h> 而不是直接函数调用的目的是什么?
- 动态链接库中C++回调函数
- 如果同时存在共享库和动态库,则链接器将首选哪个库?
- 我的动态链接队列在同一输出流中调用时不正确地输出三个返回函数
- 如何动态链接 grpc 库 c++?
- 如何在Windows上链接动态构建的cmake文件
- 当我链接动态库而不是静态库时,CMake 有效
- 在MacOS上使用Bazel链接动态库
- 链接动态库
- 链接动态和静态库 RCPP
- Windows C++Eclipse MinGW链接动态和静态库
- 如何根据另一个动态库链接动态库
- 从另一个 dll 链接动态 dll 会导致错误
- 链接动态库时出错.所以使用Lua
- G++:链接动态(dylib)库
- Qt - 帮助链接动态库