Я хочу написать программу, используя BOOST C ++ lib и используя компилятор RAD XE 5.
Если я импортирую библиотеки повышения с:
#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>
Я получаю следующее сообщение об ошибке
[bcc64 Fataler Fehler] config.hpp (26): ‘boost / config / user.hpp’-Datei nicht gefunden
У меня в папке Boost много файлов user.hpp.
Ошибка происходит из файла 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)
{
}
/
Я не могу не заметить, что ваш
#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
в настройках вашего компилятора. Но если вам придется сделать это, скорее всего, у вас уже есть серьезные проблемы.
Других решений пока нет …