我应该承认我什至没有 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/