3

アプリケーションを MacOS X に移植していますが、元の開発者のビルド システムは NMAKE を使用しており、理想的には、新しいものに切り替える代わりにそれを維持したいと考えています。

wine (MacPorts を使用してビルド) を使用して OSX で NMAKE を実行することができ、ビルド ファイルに Objective C のサポートを追加し、Unix リンクの PE ラッパー 'run.exe' を作成しました。オンラインのさまざまな場所で、wine から逃れて Unix に戻る手段として説明されているように、gcc や ld などに変換します。

ただし、いくつかの特定の問題があります。それらはポートに取り掛かることができるほどマイナーですが、タイミングのために、ビルドを数回実行する必要があることを意味します.

基本的に、wine.exe がシェルを呼び出して gcc を呼び出すと、子プロセス間のリンクが壊れているように見えます。gcc と ld は、生成された子から終了コードを取得できないため、失敗した場合でもエラー コードを返すことはありません。ar は実際には、その子が見つからないことを出力してすぐに戻るため、ld がまだまとめられているライブラリにオブジェクト ファイルをリンクしようとすると問題が発生します。

OSXまたは他の場所で、他の誰かが同様のことを試して同じ問題を見ましたか? 明らかな解決策はありますか?

4

2 に答える 2

1

Microsoft .NET Rotor (SSCLI) プロジェクトには、OSX などでのビルドを目的としたソース コードが含まれています。Rotor のソース コードには、NMake へのソース コードが含まれています。Rotor を動作させてから、Nmake を使用します。Wine ベースの Nmake を引き続き使用したい場合でも、Rotor の Unix での Nmake の使用、Gcc の使用などから学ぶことができるでしょう。

于 2010-12-09T04:56:33.163 に答える
0

元の開発者のビルドシステムに奇妙な/一貫性のないものがない場合は、makeファイルの自動変換をUnix makeに書き戻し、ビルドを「ネイティブ」に保つことができますか?

(とにかく、余分な複雑さなしに、ビルドは十分に壊れています)

于 2010-08-14T15:37:34.423 に答える