如何将几个C / C ++库组合成一个库?
How to combine several C/C++ libraries into one?我厌倦了将十个链接库添加到我的项目中,或要求其中八个使用我自己的链接库。 我想使用现有的库,例如libpng.a,libz.a,libjpeg.a,并将它们组合成一个单独的.a库。 那可能吗? 如何合并.lib库? 您可以使用以下命令从每个库中提取目标文件
然后将它们全部合并到一个新的库中
在类似Unix的系统上,ld和ar实用程序可以做到这一点。请访问http://en.wikipedia.org/wiki/Ar_(Unix)或在任何Linux机器上或通过google查找手册页,例如" unix man ar"。 请注意,链接到共享(动态)库可能会更好。这将为您的可执行文件增加依赖性,但将大大减小其大小,尤其是在编写图形应用程序时。 在Linux或MinGW或Cygwin上,使用GNU工具链:
或者,如果可以保留
在Windows上,使用MSVC工具链:
也许是我误会了,但是如果最终用户代码直接调用它们,您是否不必只运送这些库呢?如果对Jpeg方法等的所有访问均来自静态库中的代码,则只需将这些库链接到您的库中即可。 即
也就是说,如果最终代码需要直接调用libz.a,libpng.a等,这只是一个问题。 例如,如果应用程序代码有合法需要调用libz.a,则如上所述,这是使用动态模块的情况。 PS:我会获得艺术家徽章吗? :) 我不确定如何将它们物理地组合成一个文件,但是您可以采用某种抽象,只包含一个" AllMyLibs.a / h",而该文件又包含了您想要的所有内容。您也可以将其放置在编译器搜索库的位置,因此它适用于任何项目。 附言-出于好奇,为什么不喜欢包含单个库? 将多个第三方库合并到一个库中可能会给您带来更多问题-例如,如果其中两个库定义了程序不使用的公共符号。现在,在合并库之前,您必须提取公共符号的所有(或仅一个)实例。 |
相关内容
-
wps如何合并章节
wps如何合并章节,WPS教程,1.WPS表格如何实现单元格合并?WPS 表...
-
金蝶迷你版如何增加核算项|金蝶如何加上会计科
金蝶迷你版如何增加核算项|金蝶如何加上会计科目的项目辅助...
-
硬盘在电脑怎么合并|电脑硬盘怎么合并起来
硬盘在电脑怎么合并|电脑硬盘怎么合并起来,,1. 电脑硬盘怎么合...
-
金蝶旗舰版如何添加会计科目|金蝶如何加上会计
金蝶旗舰版如何添加会计科目|金蝶如何加上会计科目的项目辅...
-
cad逐点标注快捷键|cad的逐点标注命令
cad逐点标注快捷键|cad的逐点标注命令,,cad的逐点标注命令工具...
-
远古VOD系统通过压力测试标准的网络视频点播项
远古VOD系统通过压力测试标准的网络视频点播项目,,近日,河北沧...
-
cad快捷键命令|cad快捷键命令大全标注
cad快捷键命令|cad快捷键命令大全标注,,cad快捷键命令大全标注...
-
矩形cad快捷键|CAD矩形命令快捷键
矩形cad快捷键|CAD矩形命令快捷键,,CAD矩形命令快捷键CAD软件...
-
cad重复复制快捷键|cad连续复制快捷键命令
cad重复复制快捷键|cad连续复制快捷键命令,,1. cad连续复制快...
-
cmd命令快捷键|cmd快捷键大全
cmd命令快捷键|cmd快捷键大全,,cmd快捷键大全首先介绍第一种方...
-
cad布局常用快捷键|cad布局常用快捷键命令
cad布局常用快捷键|cad布局常用快捷键命令,,1. cad布局常用快...
-
cad平面设备快捷键|cad机械设计常用快捷键命令
cad平面设备快捷键|cad机械设计常用快捷键命令,,1. cad机械设...
-
金蝶工程项目上级组什么意思|金蝶K3设置部门一
金蝶工程项目上级组什么意思|金蝶K3设置部门一定要设置上级...
-
电脑计算器命令|电脑计算器命令怎么用
电脑计算器命令|电脑计算器命令怎么用,,1. 电脑计算器命令怎么...
-
cad修改快捷键的命令|cad修改快捷键的命令大全
cad修改快捷键的命令|cad修改快捷键的命令大全,,cad修改快捷键...