2017-08-26 132 views
1

是否有将libc库包含在Lazarus或Free Pascal编译的二进制文件中的方法?我不想使用共享库,因为如果我用更新版本的Libc编译我的应用程序,例如,它不适用于较旧的Linux。反正有没有在Lazarus/Free pascal编译二进制文件中包含libc.so?

我想这是因为在终端显示以下错误,当我在旧的Linux版本上运行我的应用程序:

./app:/lib64/libc.so.6:版本`GLIBC_2.14 '找不到(需要 ./app)

谢谢。

+1

简单的答案是否定的。 –

+0

你有没有试过-Xt编译选项? “-Xt与静态库链接(-static传递给链接器)” – Scooter

+0

简单的答案是否定的,除非你打算自己研究它。 –

回答

1

有没有办法在Lazarus或Free Pascal编译的二进制文件中包含libc库?

如果编译器支持-static标志,并且不需要使用动态库,那么你的二进制文件将包括(所使用的零件)libc.a

Documentation提出副本,添加-Xt到链接线将去做。

我不想使用共享库,因为如果我用新版本的Libc编译我的应用程序,例如,它不适用于较旧的Linux。

这个(编译在较新的版本上,运行在较旧版本上)通常不被支持。使用全静态二进制可能工作,但往往因为其他神秘的原因失败。

最好的办法是在您计划支持的最老的操作系统上进行构建,使用chroot -ed构建环境或虚拟机内部。

+0

libc是特殊的,如果你想链接静态,libc ini/finalization的调用可能也需要在启动代码中修复。 –

相关问题