我正在将一个应用程序移植到 MacOS X - 但原始开发人员的构建系统使用 NMAKE,理想情况下他们希望保留它而不是切换到新的。
我设法让 NMAKE 使用 wine(使用 MacPorts 构建)在 OSX 下运行,并为构建文件添加了 Objective C 支持,并创建了一个与 Unix 链接的 PE 包装器'run.exe',wine 可以加载但使用 POSIX 回调进入 gcc 和 ld 之类的东西,正如在网上各个地方所描述的那样,作为一种从 wine 中逃回 Unix 的方法。
但是,我有一些具体问题。它们足够小,我可以继续使用该端口,但这确实意味着我有时需要运行几次构建,因为时间问题。
基本上,当 wine.exe 回调到 shell 并因此调用 gcc 时,子进程之间的链接似乎被破坏了。gcc 和 ld 即使在失败时也永远不会返回错误代码,因为它们无法从生成的孩子那里获得退出代码。ar 实际上会打印出它找不到它的孩子并立即返回,当 ld 尝试将目标文件链接到仍在组合的库时会导致问题。
有没有其他人在 OSX 或其他地方尝试过类似的东西并看到同样的问题?有明显的解决方案吗?