10

私はcMakeに比較的慣れていないので、プロジェクトでboost asioライブラリを使用しようとしています。

cMake で smart_ptr や lexical_cast などの他のブースト ライブラリを見つけることができましたが、インクルードしようとするとリンカー エラーが発生しますboost/asio.hpp

LINK : fatal error LNK1104: cannot open file 'libboost_system-vc90-mt-1_40.lib'.  

次に、CMakeLists.txtをから変更しようとしました

find_package(Boost 1.40.0 REQUIRED)

find_package(Boost 1.40.0 REQUIRED COMPONENTS asio)

次に、cMake は and を要求しBoost_ASIO_LIBRARY_DEBUGますBoost_ASIO_LIBRARY_RELEASE。私はこれを正しい方法で行っていますか?もしそうなら、これらのライブラリを見つけるためにcMakeをどこに向けるべきですか? (私はcMake 2.6とブースト1.40.0を使用しています)

4

1 に答える 1

20

ASIOのドキュメントによると:

Boost.Asio を使用するプログラムをリンクするには、次のライブラリが利用可能である必要があります。

  • boost::system::error_code および boost::system::system_error クラスの Boost.System。
  • Boost::regex パラメーターを取る read_until() または async_read_until() オーバーロードのいずれかを使用する場合は、Boost.Regex (オプション)。
  • Boost.Asio の SSL サポートを使用する場合は、OpenSSL (オプション)。

リンク エラーを見ると、Boost.System ライブラリを探していることがわかります。CMakLists.txt を次のように変更してみます。

find_package(Boost 1.40.0 REQUIRED system)
于 2010-01-18T17:41:24.363 に答える