我厌倦了在我的项目中添加十个链接库,或者要求其中八个使用我自己的链接库.我想使用现有的库,如libpng.a,libz.a,libjpeg.a,并将它们组合成一个.a库.那可能吗?如何组合.lib库?
Jud*_*den 24
您可以使用从每个库中提取目标文件
ar x <library name>
Run Code Online (Sandbox Code Playgroud)
然后将它们全部合并到一个新的库中
ar cs <new library name> <list each extracted object file>
Run Code Online (Sandbox Code Playgroud)
在类似Unix的系统上,ld和ar实用程序可以做到这一点.查看http://en.wikipedia.org/wiki/Ar_(Unix)或在任何Linux机器上或通过谷歌查找手册页,例如'unix man ar'.
请注意,链接到共享(动态)库可能会更好.这将为您的可执行文件添加依赖项,但会大大减小其大小,尤其是在您编写图形应用程序时.
在 Linux 或 MinGW 或 Cygwin 上,使用 GNU 工具链:
ar -M <<EOM
CREATE libab.a
ADDLIB liba.a
ADDLIB libb.a
SAVE
END
EOM
ranlib libab.a
Run Code Online (Sandbox Code Playgroud)
或者,如果你能保持的存在liba.a和libb.a:
ar crsT libab.a liba.a libb.a
Run Code Online (Sandbox Code Playgroud)
在 Windows 上,使用 MSVC 工具链:
lib.exe /OUT:libab.lib liba.lib libb.lib
Run Code Online (Sandbox Code Playgroud)