1

Libtorrent を Visual Studio 2013 と静的にリンクしようとしていますが、Libtorrent をビルドしてからプロジェクトをコンパイルした後、次の 1 つのエラーが発生し続けます。

 LINK : fatal error LNK1104: cannot open file 'libboost_system-vc120-mt-1_55.lib'

私は静的にビルドしているので、 libboost_system-vc120-mt-1_55.lib はありませんが、libboost_system - vc120-mt-s-1_55.lib があります。次のパラメーターを使用してブーストを作成しました。

 "toolset=msvc-12.0 variant=release link=static runtime-link=static --with-date_time --with-system --with-thread"

これらを含むLibtorrent:

 "toolset=msvc-12.0 boost=source boost-link=static geoip=off encryption=tommath link=static dht=on logging=none statistics=off i2p=on variant=release"

ビルドされた Libtorrent が静的ではなく共有されていると考えているため、何が欠けていますか?

4

1 に答える 1

2

runtime-link=staticビルド時に指定しましたboostlibtorrentこれは、C++ ランタイム ライブラリに静的にリンクするために、アプリ (および使用する可能性のある他のライブラリ) の両方が必要であることを意味します。

runtime-link=staticそのため、ビルド コマンド ラインに追加しlibtorrentて、アプリの VC++ の適切なコンパイラ オプションを選択する必要があります (/MTコマンド ライン オプションまたはIDEの対応するRuntime Libraryオプションのいずれか)。Code Generation

そうしないと、何らかの方法で全体をコンパイルしたとしても、プログラムの一部がランタイムの静的バージョンを使用し、別の部分が共有バージョンを使用するため、いくつかの重大なランタイム エラーが発生します。

于 2015-02-21T14:48:56.123 に答える