0

ブーストバージョン1.53.0を使用してVisualStudio2010を使用してWindowsXPでプロジェクトをビルドしようとしています(これは重要ですが、説明します)

errosはsocket_option.hppのクラスに関連しています:

テンプレート<intレベル、int名>
クラスブール
{{

上で述べたように、このクラスはブースト1.35.0のasioの最初のバージョンから変更されていません

これらのエラーが発生します:

D:\ work \ extern \ include \ boost / asio / detail / socket_option.hpp(34):エラーC2332:'クラス':タグ名がありません
D:\ work \ extern \ include \ boost / asio / detail / socket_option.hpp(34):エラーC3306:'boost :: asio :: detail :: socket_option ::':名前のないクラステンプレートは許可されていません
D:\ work \ extern \ include \ boost / asio / detail / socket_option.hpp(34):エラーC2628:'boost :: asio :: detail :: socket_option ::'の後に'int'が続くのは不正です(忘れましたかa';'?)
D:\ work \ extern \ include \ boost / asio / detail / socket_option.hpp(35):エラーC2143:構文エラー:';'がありません 前 '{'
D:\ work \ extern \ include \ boost / asio / detail / socket_option.hpp(35):エラーC2447:'{':関数ヘッダーがありません(古いスタイルの正式なリスト?)

また、そのクラスの使用でより多くのエラーが発生します

4

1 に答える 1

0

適切な Boost インクルードを参照していることを確認してください。これは、プロジェクト メニューからプロパティを選択するか、ソリューション エクスプローラーからプロジェクトを右クリックしてプロパティを選択することにより、Visual Studio から実行できます。C/C++ を選択し、追加のインクルード ディレクトリの下に、Boost をインストールした場所へのパスを入力します。Visual Studio 2008 を使用しているシステムでは、C:\Program Files パスに Boost 1.52.0 がインストールされています。したがって、これは私のシステムでの設定のようです。

C:\Program Files\boost_1_52_0\;

OpenSSL も使用している場合は、インストール先へのパスも指定する必要があります。私のシステムでは、次のようになります。

C:\Users\Bob\Documents\Visual Studio 2008\Projects\Win32Client\OpenSSL-Win32\include\; C:\Users\Bob\Documents\Visual Studio 2008\Projects\Win32Client\OpenSSL-Win32\include\openssl\;

リンカーが適切にビルドできるように、ライブラリ パスも指定する必要があります。そのため、[プロパティ] ダイアログ ボックスで [リンカー] を選択し、[追加のライブラリ ディレクトリ] に適切な lib フォルダーへのパスを入力します。私のシステムでは、次のようになります。

C:\Program Files\boost_1_52_0\lib32\;

SSL を使用する場合は、以下も必要になります。

C:\Users\Bob\Documents\Visual Studio 2008\Projects\Win32Client\OpenSSL-Win32\lib\VC\static;

libeay32MDd.lib ssleay32MDd.lib

これは、Linker / Inputs セクションの下に入力されます。

Boost 経由で OpenSSL ライブラリの 64 ビット バージョンをビルドできませんでした。すでにバグ レポートを提出しています。ただし、32 ビット版は正常にビルドされます。

于 2013-02-12T17:18:20.370 に答える