繁体   English   中英

将共享库编译成程序?

[英]Compile shared library into a program?

我编写了一个程序,它使用安装在我系统上的共享库。 这个库很少安装在其他系统上。 我如何编译我的程序以便库不需要安装在其他系统上? 我有可用的库的源代码。 最好的方法是什么?

其他系统当然具有相同的架构和操作系统。

将其编译为静态库并将其链接到可执行文件中。

尽管 OP 通过回答不同的问题解决了他的问题,但(至少)有两种方法可以将共享库插入二进制文件中,以防万一

  • 没有可用的源代码
  • 没有可用的编译器(或构建链)
  • 静态链接不起作用或不明显怎么办
  • 保留内存布局 - 静态链接会改变它并可能“唤醒”隐藏的错误
  • 对于“永久链接”LD_PRELOAD 库到可执行文件

第一个是 statifier(开源但仅限于 x86 和 x86_64 并且只有目标代码)

我所知道的第二个是魔法貂(由同一位开发人员)。 它是封闭源代码,但开发人员对开源项目很友好,并且 ermine 具有支持更多平台的优势以及能够在其虚拟文件系统中包含所有必要数据文件的能力。

http://statifier.sourceforge.net/http://www.magicermine.com/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM