не удалось скомпилировать boost с apple llvm program_options

Я использовал компилятор LLVM GCC 4.2, но по какой-то причине я хочу использовать компилятор Apple LLVM. Я использую несколько буст-библиотек, статически связанных.

Моя часть кода здесь:

#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];

Когда я изменил компилятор в Xcode 4.5.1 на Apple LLVM 4.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: примечание: в реализации функции-члена
'Повышение :: program_options :: детали :: basic_config_file_iterator :: GetLine'
просили здесь
for (config_file_iterator i (config, 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);

введите описание изображения здесь

Кто-нибудь знает, каково решение?

0

Решение

Пожалуйста, найдите в верхней части detail/config_file.hpp, следующая строка:

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

И удалить #if а также #endif вокруг этой линии. После этого все должно быть хорошо. Исправление уже включено в текущие версии.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector