Я хочу написать программу, используя BOOST C++ lib и используя компилятор RAD XE 5.
Если я импортирую файлы boost с помощью:
#include <boost_1_50/boost/config.hpp>
#include <boost_1_50/boost/graph/graph_traits.hpp>
#include <boost_1_50/boost/adjacency_list.hpp>
#include <boost_1_50/boost/dijkstra_shortest_paths.hpp>
Я получаю следующую ошибку: msg
[bcc64 Fataler Fehler] config.hpp(26): 'boost/config/user.hpp' -Datei nicht gefunden
У меня много файлов user.hpp внутри моей папки Boost.
Ошибка возникает из файла config.hpp:
// include it first:
#ifdef BOOST_USER_CONFIG
# include BOOST_USER_CONFIG
#endif
Как включить boost lib правильно в C++ XE 5? (для получения дополнительной информации мои настройки компилятора в качестве экранного дампа)
здесь приведен полный некомпилирующий пример кода
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit_shortpath.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <boost_1_50/boost/config.hpp>
#include <boost_1_50/boost/graph/graph_traits.hpp>
#include <boost/adjacency_list.hpp>
#include <boost/dijkstra_shortest_paths.hpp>
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
/
Я не могу не заметить, что ваш #includes, как
#include <boost_1_50/boost/config.hpp>
#include <boost_1_50/boost/graph/graph_traits.hpp>
#include <boost_1_50/boost/adjacency_list.hpp>
неверны:
О. Вы никогда не должны включать "config.hpp" напрямую, оставьте его для повышения.
B. Вы должны настроить свой путь таким образом, чтобы не включать версию Boost
#include <boost/graph/graph_traits.hpp>
#include <boost/adjacency_list.hpp>
Скорее всего, причиной ваших проблем является то, что из-за вашего стиля #include вы смешиваете две версии Boost вместе.
Поддержка вашего компилятора (Embarcadero, прежний Borland, правда?) Не очень последовательна в новых версиях Boost. Может быть, установка Boost не может выводить некоторые ограничения свойств и оптимизацию этого компилятора. Разработчики Boost даже не знают, как получить свою версию: http://lists.boost.org/Archives/boost/2013/09/206546.php.
Скорее всего, вам придется делать это самостоятельно или, возможно, проконсультироваться с некоторыми документами компилятора, как использовать Boost с ним. Возможно, вы захотите переключиться на более старые версии Boost (1.49?), Когда был поддержан компилятор (или его предшественник).
Отвечая на ваш конкретный вопрос, чтобы отключить заголовок конфигурации пользователя, вы можете #define BOOST_NO_USER_CONFIG
в настройках вашего компилятора. Но если вам это нужно, скорее всего, у вас уже серьезные проблемы.
#include <boost/graph/xxxxxxx.hpp
Удачи!