我厌倦了在我的项目中添加十个链接库,或者需要其中的八个来使用我自己的。我想采用现有的库,如 libpng.a、libz.a、libjpeg.a,并将它们组合成一个 .a 库。那可能吗?组合 .lib 库怎么样?
原文由 GhassanPL 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Linux、 MinGW 或 Cygwin 上,使用 GNU 工具链:
ar -M <<EOM
CREATE libab.a
ADDLIB liba.a
ADDLIB libb.a
SAVE
END
EOM
ranlib libab.a
或者,如果您可以保持 liba.a
和 libb.a
的存在:
ar crsT libab.a liba.a libb.a
在 Windows 上,使用 Microsoft Visual C++ 工具链:
lib.exe /OUT:libab.lib liba.lib libb.lib
原文由 Star Brilliant 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
在类 Unix 系统上,ld 和 ar 实用程序可以做到这一点。查看 http://en.wikipedia.org/wiki/Ar_(Unix) 或在任何 Linux 机器上或通过 Google 查找手册页,例如“Unix man ar”。
请注意,链接到共享(动态)库可能会更好。这会给您的可执行文件添加一个依赖项,但它会显着减小其大小,尤其是在您编写图形应用程序时。