0

このリンクで指定されているように、VS-10 を使用して Windows 8 用の Boost を正しくコンパイルしました。私のプロジェクトはうまくいきます。しかし、プロジェクトを別の Windows 7 マシンにコピーすると、「アプリケーションを正しく開始できませんでした (0xc000007b)。[OK] をクリックしてこのアプリケーションを閉じます。」というエラー メッセージが返されます。2 台目の PC にも Boost を正しくインストールしました。どちらの PC も 64 ビットで、両方に 32 ビットの Boost をインストールしました。いくつかのリンクからわかったように、これは、プロジェクトが 32 ビットではなく 64 ビット ライブラリを動的にリンクしようとするためです。これを移植可能なソリューションとして構築する方法を教えてください。前もって感謝します。

更新 1: 以下は依存関係ウォーカーの出力です。 ここに画像の説明を入力

4

1 に答える 1

1

ライブラリをコンパイルするために Visual Studio 2010 コマンド プロンプト x86 を選択したことは確かですか? またはx64バージョン?スタート メニューにコマンド プロンプトの複数のバージョンがあります。私の推測では、誤って x64 バージョンを実行し、それを使用してブーストをコンパイルした結果、ライブラリの x64 ビット バージョンがコンパイルされた可能性があります。

x86 で静的および共有バージョンのブーストをコンパイルするバッチ ファイルを次に示します。

コンパイルブースト.bat:

call "%vs110comntools%..\..\VC\vcvarsall.bat" x86
cd C:/boostsourcefolder/
call bootstrap.bat
.\b2 runtime-link=static
.\b2 runtime-link=shared

次に、VS2010 プロジェクトのプロパティで、[共通プロパティ] -> [VC++ ディレクトリ] -> [ディレクトリを含める] で、ブースト フォルダー (C:/boostsourcefolder/) を入力します。[共通プロパティ] -> [VC++ ディレクトリ] -> [ライブラリ ディレクトリ] で、boost コンパイル済みライブラリ フォルダー (C:/boostsourcefolder/stage/lib/) を入力します。

それはあなたがする必要があるほとんどすべてです。

于 2013-06-02T03:29:57.387 に答える