我确实在 FreeBSD 12 中静态编译了一个 cmake 项目,当我尝试ldd executable它返回not a dynamic executable. 我在同一台计算机上尝试了可执行文件,它工作正常。然后我确实将它移植到了我的具有 FreeBSD 12 的 vps 并且它按预期工作。但是当我将它移植到 FreeBSD 8 时。一些命令正在工作,比如executable --help打印帮助。但是,当我尝试一些涉及网络的功能(网络已配置,我尝试了各种程序,如 curl 和 php)时,该进程静默退出,没有分段错误或其他任何问题,并且在运行可执行文件后,将其他一些文件名executable.core添加到同一目录中
这是我第一次编译 FreeBSD 版本,所以我不知道我错过了什么
FreeBSD 12 有严重的 ABI 更改,称为“ino64”。IIRC,libc 可以在动态链接时处理它,所以我会先尝试一下。如果这不起作用,您唯一的选择就是在 FreeBSD 8 上编译。
通常,您不应该期望在 X 主要版本上编译的二进制文件可以在 X-1 版本上运行。但它通过安装misc/compatXX软件包以其他方式工作。