linux - Mac OS X 共享库跨平台开发

标签 linux macos cross-platform shared-libraries

我应该承认我什至没有 Mac,我做过 Windows 和 Linux 编程。在这里,如果可能的话,我希望通过将 Mac OS X 与 Linux 联系起来来了解它。并希望能够在不购买 Mac 的情况下编译 Mac 共享库。

注意:绝对没有 GUI,所以应该不需要 Cocoa 吧?还假设我现在使用 C 或 c++0x 和 POSIX。

Mac OS X 共享库和 Linux 有什么区别? 在 Mac 上运行 Linux .so 文件需要什么?我是否需要 Mac-native 替换 ld-linux.so 和 linux-gate.so 或其他一些与 crt 相关的目标文件?

Windows 或 Linux 上是否有适用于 Mac 的跨平台 gcc? (同样没有 GUI)

最佳答案

即使您不需要 Cocoa/Objective-C,您仍然需要链接 Mac OS X 库(如 libSystem,就像 Linux 上的 libc ).文件格式完全不同(ELF 与 Mach-O),因此如果不重新编译,就无法使 Linux 库或工具在 Mac 上运行。

如果您坚持使用 POSIX/SUS API,只要您不尝试任何特定于平台的操作,例如阅读 Linux /proc 文件。

似乎不存在任何用于 Linux 到 Mac 开发的交叉编译器,我无法想象有人试图这样做:你会追逐一个移动的目标而没有任何实际好处。

解决此类问题的方法一如既往:在 eBay 或类似的拍卖平台上购买二手 MacMini。它们很便宜而且足够了。

关于linux - Mac OS X 共享库跨平台开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9006389/

相关文章:

c++ - 当我使用boost::this_thread::sleep时,/proc/{pid}中它的pid目录会发生什么?

objective-c - 如何确保线程正确解锁

macos - QPushButton在Mac OS X上创建空白空间,导致布局难看

c - 在 linux mint 上编译 c 程序时如何修复异常错误?

c++ - 哪个库用于视频和音频录制?

linux - 读取目录中的多个文件并与另一个文件进行比较

linux - 创建一个 cron 作业以在一周中特定日期的特定时间的小时标记和半小时标记运行

linux - 获取驱动程序功能的手册页

macos - 如何从 Mac OS X Dock 中隐藏应用程序图标

c++ - 是否有用于为命令行项目创建菜单的开源跨平台 C++ 库?