反正有没有在Lazarus/Free pascal编译二进制文件中包含libc.so?
是否有将libc库包含在Lazarus或Free Pascal编译的二进制文件中的方法?我不想使用共享库,因为如果我用更新版本的Libc编译我的应用程序,例如,它不适用于较旧的Linux。反正有没有在Lazarus/Free pascal编译二进制文件中包含libc.so?
我想这是因为在终端显示以下错误,当我在旧的Linux版本上运行我的应用程序:
./app:/lib64/libc.so.6:版本`GLIBC_2.14 '找不到(需要 ./app)
谢谢。
有没有办法在Lazarus或Free Pascal编译的二进制文件中包含libc库?
如果编译器支持-static
标志,并且不需要使用动态库,那么你的二进制文件将包括(所使用的零件)libc.a
Documentation提出副本,添加-Xt
到链接线将去做。
我不想使用共享库,因为如果我用新版本的Libc编译我的应用程序,例如,它不适用于较旧的Linux。
这个(编译在较新的版本上,运行在较旧版本上)通常不被支持。使用全静态二进制可能工作,但往往因为其他神秘的原因失败。
最好的办法是在您计划支持的最老的操作系统上进行构建,使用chroot
-ed构建环境或虚拟机内部。
libc是特殊的,如果你想链接静态,libc ini/finalization的调用可能也需要在启动代码中修复。 –
简单的答案是否定的。 –
你有没有试过-Xt编译选项? “-Xt与静态库链接(-static传递给链接器)” – Scooter
简单的答案是否定的,除非你打算自己研究它。 –