2

ブースト 1_47_0 をインストールしてビルドしました (私の知る限りでは成功しています)。インストール ガイドを使用してサンプル プログラム (正規表現プログラム) を実行しようとしていますが、次のリンク エラーが表示されます。

LNK2019: 未解決の外部シンボル "private: class boost::basic_regex ....

問題は、ライブラリが b2 を使用して vc100 としてビルドされ、プラットフォーム ツールセットが Windows7.1SDK であることだと思われます。プラットフォーム ツールセットを v100 に変更できないか、kernel32.lib が見つからないというエラーが生成されます。そして、sdk7になるようにブーストを構築する方法を理解できないようです。Visual C++ Express 2010 を使用しており、Windows7.1SDK コマンド ライン プロンプトからのビルドも試みました。

何か案は?

4

2 に答える 2

1

「BoostPro Computing」のインストーラーでブーストをインストールすると、同じ問題が発生します。そして、ソースコードからboost libをコンパイルすることで解決します。手順は次のとおりです。

  1. Visual Studio 2010 Express コマンド プロンプトに入る
  2. 解凍されたブーストディレクトリにcdします
  3. ブートストラップ.bat
  4. .\b2

終わり。

ここに私の環境があります:

  • Win7 64ビット
  • Visual Studio 2010 Express
  • ブースト 1_52_0
于 2013-01-10T15:41:32.997 に答える
0

bjam を呼び出すバッチ ファイルを使用してブーストをビルドしましたが、プロジェクトで正規表現ライブラリを使用しても問題はありませんでした。VS2010 Proを使用しています。これが私のバッチファイルの行です。追加のライブラリの場所は重要ではないかもしれません。完全を期すためにここに置いています。

call "C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat"
SET ZLIB_SOURCE=%LIBS%\zlib
SET ZLIB_INCLUDE=%LIBS%\zlib
SET BZIP2_SOURCE=%LIBS%\bzip2-1.0.5
SET BZIP2_INCLUDE=%LIBS%\bzip2-1.0.5
SET BZIP2_BINARY=libbz2
SET ZLIB_BINARY=zdll
SET EXPAT_INCLUDE=%LIBS%\Expat\Source\lib
SET EXPAT_LIBPATH=%LIBS%\Expat\Bin
SET EXPAT_BIN=%LIBS%\Expat\Bin

bjam.exe  --disable-filesystem2 --build-type=complete --user-config=%UTILS%\user-config.jam 

もちろん、ライブラリと user-config.jam へのパスは異なります。user-config.jam で本当に重要な行は次の 1 行だけです。

using msvc : 10.0 ;

ビルドが成功したら、ステージ/lib ディレクトリへのパスをプロジェクトの追加のライブラリ設定に追加して、リンカーが満足するようにする必要があります。また、これはエクスプレス ビルドであるため、インクルード パスをいじってプラットフォーム SDK を取得する必要がある場合があります。最上位の Boost ディレクトリからこのバッチ ファイルを実行します。

于 2011-09-06T17:38:27.380 に答える