0

LLVM GCC 4.2コンパイラを使用していましたが、理由から、代わりにAppleLLVMコンパイラを使用したいと思います。静的にリンクされたいくつかのブーストライブラリを使用します。

私のコード部分はここにあります:

#include <boost/program_options/detail/config_file.hpp>

std::set<std::string> options;
std::map<std::string, std::string> parameters;
options.insert("*");

for (config_file_iterator i(config, options), e ; i != e; ++i) 
    parameters[i->string_key] = i->value[0];

Xcode4.5.1のコンパイラをAppleLLVM4.1に変更すると、次のエラーが発生します。


    A.cpp:16からインクルードされたファイル:
    boost_1_46_1 / boost / program_options / detail / config_file.hpp:163:17:エラー:
    テンプレートに表示されていない関数'to_internal'の呼び出し
    定義も引数依存のルックアップでも見つかりません
        s = to_internal(in);
            ^
    A.cpp:82:39:注:メンバー関数のインスタンス化
    'boost :: program_options :: detail :: basic_config_file_iterator :: getline'
    ここでリクエスト
        for(config_file_iterator i(con​​fig、options)、e; i!= e; ++ i)
                                  ^
    boost_1_46_1 / boost / program_options / detail / convert.hpp:70:48:注:
    'to_internal'は、呼び出しサイトの前に宣言する必要があります。
    名前空間'__gnu_cxx'
BOOST_PROGRAM_OPTIONS_DECL std :: string to_internal(const std :: string&);

ここに画像の説明を入力してください

誰かが解決策を知っていますか?

4

1 に答える 1

1

detail/config_file.hpp上部にある次の行を見つけてください。

#include <boost/program_options/detail/convert.hpp>

そして、その線の周りを削除#ifします。#endifその後、すべてが正常に構築されているはずです。この修正は、現在のバージョンにすでに含まれています。

于 2012-11-22T19:26:15.207 に答える