我在C
上用ubuntu 12.04
语言开发了一个项目,我有一些共享对象库(.so文件)。现在我想在freeBSD 8.3
操作系统上使用这些库。这可能吗?如果不是我该怎么办?是否有必要在freeBSD上编译我的源文件?
答案 0 :(得分:4)
Andras正在谈论运行Linux 二进制文件。您正在谈论使用Linux 共享库(可能是使用在FreeBSD上编译的程序)。这是完全不同的事情。
在FreeBSD上运行一些相当有限的Linux二进制文件是可能的,因为FreeBSD内核提供了一个导出Linux兼容的填充层的模块。但是要完成这项工作,您必须拥有全Linux用户空间:您必须拥有Linux构建的共享库,Linux构建的二进制文件等。请参阅https://www.freebsd.org/doc/handbook/linuxemu.html
在FreeBSD上编译的二进制文件使用在Linux上编译的共享库是行不通的。它们具有不同的C运行时,不同的内核系统调用等。它不起作用,就像在Mac OSX上使用Linux共享库,在Intel上的Solaris或任何其他操作系统上都不起作用。
答案 1 :(得分:1)
freebsd曾经能够运行linux二进制文件,并在包中包含一组linux .so。所以有可能在某一时刻