c - 是否可以在 FreeBSD 中使用 ubuntu 的共享对象库?

标签 c ubuntu compilation makefile freebsd

我在 ubuntu 12.04 上用 C 语言开发了一个项目,并且我有一些共享对象库(.so 文件)。现在我想在 freeBSD 8.3 操作系统上使用这些库。这可能吗?如果不是,我该怎么做?在 freeBSD 上编译我的源文件是否有必要?

最佳答案

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 或任何其他操作系统上都不会工作一样。

关于c - 是否可以在 FreeBSD 中使用 ubuntu 的共享对象库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27251299/

相关文章:

c - 如何编译和运行FNV Hash

ubuntu - 程序中不允许使用 OCaml '_a?

c - 将动态分配的内存释放给我正确创建的结构

c - HTTP如何缓存STORE缓存的请求?

c - 如何从客户端向服务器发送无效密码?

python - Pycharm 中的 """input().split() in loop"""问题

objective-c - 如何正确地将 char 数组分配给指针?

amazon-web-services - 将 S3 存储桶挂载到 EC2 Ubuntu 实例

linux - 如何使用 rpmbuild 从主机上的源 RPM 为目标构建二进制 RPM

compilation - Bison 解析器编译未知错误