Windows と UNIX の両方のバージョンをビルドする必要がある C++ コードベースがあります。cygwin などをインストールしなくても、Windows 実行可能ファイルが機能することが重要です。ああ、私はこれをubuntuから達成しようとしています。
ブーストビルドで処理する方法を見つけようとしてきましたが、これまでのところ不十分です..簡単にするために、次のプロジェクト構造を想定しています。
root/
|- src/
| |- core/
| | |- number.cpp
| | |- number.hpp
| |- main.cpp
|- jamroot
最初のステップとして、boost-build で Windows バイナリを作成するために、ホーム ディレクトリに次の内容を含む user-config.jam ファイルを作成します。
using gcc : 4.4 : i586-mingw32msvc-g++ : <rc>i586-mingw32msvc-windres <archiver>i586-mingw32msvc-ar ;
私の jamroot ファイルは次のようになります。
exe hello :
[ glob-tree *.cpp ]
: : <target-os>windows
;
しかし、実行するbjam
と、UNIX 実行可能ファイル (拡張子なし) が取得されますが、Windows 実行可能ファイルは取得されません。アプリケーションの名前を .exe 拡張子に変更して Windows で実行しても機能しません。bjam --toolset=gcc --target-os=windows
など、bjamのさまざまなオプションを試しましたが、うまくいくようbjam --toolset=gcc-mingw --target-os=windows
です..
記録として、mingw は適切にインストールされ、動作しています。コンパイラを手動で呼び出すと、正しい出力ファイルが生成されます。
何か案は?
また、user-config.jam ファイルにリストされている各ツールセットのバージョンを bjam にビルドさせるにはどうすればよいですか?
おまけの質問: 最終的に、1 つのブースト ライブラリと 1 つのカスタム ビルド済みライブラリにリンクする必要があります。ターゲット システムごとに異なるライブラリを指定するにはどうすればよいですか?
更新私はhttp://mingw-cross-env.nongnu.org/からスクリプトをダウンロードしました。 bjam に mingw コンパイラーを呼び出させます (私は別のコンピューターにいるので、現時点では解決策を提供できません)。他の質問はまだ解決されていません。