首页 / 知识
如何将几个C / C ++库组合成一个库?
2023-04-12 08:03:00

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",而该文件又包含了您想要的所有内容。您也可以将其放置在编译器搜索库的位置,因此它适用于任何项目。 附言-出于好奇,为什么不喜欢包含单个库? 将多个第三方库合并到一个库中可能会给您带来更多问题-例如,如果其中两个库定义了程序不使用的公共符号。现在,在合并库之前,您必须提取公共符号的所有(或仅一个)实例。 |
最新内容
相关内容
python怎么执行命令
python怎么执行命令,代码,环境,培训,系统,工作,命令,路径,操作系统,程序,空格,Python的命令提示符是在操作系统中,提示进行命令输入的一种工作python组合数据类型分为哪几类?
python组合数据类型分为哪几类?,培训,数据类型,python不是内部命令
python不是内部命令,系统,培训,工作,电脑,路径,不是,符号,变量,开环,命令,‘python3’不是内部或外部命令,也不是可运行的程序或批处理文件。python代码如何在命令行运行
python代码如何在命令行运行,代码,培训,路径,空格,文件,下面,以上,目录,更多,内容,我们在编写python代码时,可以在交互模式下运行代码,也可以用python无法识别命令的解决
python无法识别命令的解决,工具,培训,命令,错误,版本,用户,下一步,时会,单击,上述,python无法识别命令的解决问题输入python可以访问python命python命令行如何运行文件
python命令行如何运行文件,培训,文件,命令,目录,文件名称,实例,桌子,以上,方法,教程,python命令行如何运行文件1、说明写了python文件,想通过python有哪些命令行参数解析模块?
python有哪些命令行参数解析模块?,标准,软件,培训,概念,参数,模块,使用方便,可能会,功能强大,界面,python有哪些命令行参数解析模块?1、概念(python命令模式的作用
python命令模式的作用,系统,状态,数据,衍生,培训,工作,命令,模式,操作,队列,python命令模式的作用1、队列请求命令可以运算块打包(一个接收者pythonvirtualenv的命令调用
pythonvirtualenv的命令调用,环境,名称,工具,培训,命令,行会,模块,接下来,以上,教程,pythonvirtualenv的命令调用1、启动虚拟环境cdENVsource关于python:解析命令行参数的最佳方
关于python:解析命令行参数的最佳方法是什么?,关于python:解析命令行参数的最佳方法是什么?,命令行参数,方法,最简单,简洁,What's the b关于Java:大型Maven项目的存储库布
关于Java:大型Maven项目的存储库布局,关于Java:大型Maven项目的存储库布局,模块,结构,应用程序,类似于,Repository layout for large M关于语言功能:PHP中的GOTO命令?
关于语言功能:PHP中的GOTO命令?,关于语言功能:PHP中的GOTO命令?,发现,描述,计划,搜索,GOTO command in PHP?我听说有谣言说PHP正在计划引