2017-09-25 8 views
1

Visual Studio 2015でC++でユーティリティをコンパイルしようとしていますが、ブースターasioネットワーキング(http要求)ライブラリが必要です。 同じソリューションにはこのBoost asioライブラリを構築するプロジェクトが含まれていますが、boost_1_59_0.7zファイルをダウンロードする必要がありました。これまでのところ、私はそれをダウンロードすることができましたが、ビルドはうまくいきましたが、ビルドが異なる名前の11個のlibsのように生成されていました(libboost_ chrono -vc140-mt-sgd-1_59.libと10個以上がdate_time、 、ログ設定など)。 一方、このライブラリを必要とするプロジェクトは、boost_1_59_0.libという名前のライブラリを探しています。私の質問は、生成されたライブラリのどれがネットワーキングに使用するのが正しいかを知る方法です(私は何も見ませんアジオやネットワーキングに関連する名前...)。 私はこれに関する任意の指導を感謝します。ネットワーキング(httpクライアント)用のBoost asioライブラリ

おかげ のGus

答えて

1

Boost.Asio doc

デフォルトでは、Boost.Asioはヘッダのみのライブラリです。しかし、開発者の中には、別にコンパイルされたソースコードを使用してBoost.Asioを構築する方が好きかもしれません。これを行うには、プログラムの1つのソースファイルに#include <boost/asio/impl/src.hpp>を追加して、プロジェクト/コンパイラ設定で定義されたBOOST_ASIO_SEPARATE_COMPILATIONでプログラムをビルドします。代わりに、BOOST_ASIO_DYN_LINKを定義して、別々にコンパイルされたBoost.Asioを共有ライブラリの一部として構築することもできます。

したがって、デフォルトでAsioはヘッダファイルのみであり、ほとんどの用途ではBoostライブラリとのリンクが必要ありません。

しかし、boost Asioは、より良い非同期操作といくつかのエラーコード(boost :: system :: error_codeとboost :: system)をサポートするために、Boost.System、Boost.Thread(ネッセサリー以外) ::システムエラー)。

herehereを参照してください。

0

boost asioヘッダのみのライブラリあるがasioネットワーキングヘッダのみライブラリないエラーメッセージのためboost systemに依存します。 要するに、あなたのコードはboost-systemにリンクする必要があり、タイマーにはboost-chronoが必要な場合もあります。

注:boostautolinkingVisual Studioで、あなたはちょうど例えば、Library Directories構成プロパティにboostライブラリディレクトリへのパスを追加する必要があります。:

$BOOST_ROOTあなたは boostをインストールしたディレクトリです
$BOOST_ROOT\stage\lib 

boost-systemまたはboost-chronoLinker->Input->Additional Dependenciesに追加する必要はありません。ただし、Windowsネットワークライブラリを追加する必要があります(wsock32およびws2_32など)。

関連する問題