2013-12-26 1 views
0

Я хочу написать программу, используя BOOST C++ lib и используя компилятор RAD XE 5.с использованием Boost Graph Lib с EMBARCADERO RAD C++ XE 5

Если я импортировать подталкивания с LIBS:

#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): «повышающего/конфигурации/пользователя. hpp'-Datei nicht gefunden

У меня есть много файлов user.hpp внутри моей папки Boost.

ошибка происходит из config.hpp файла:

// include it first: 
#ifdef BOOST_USER_CONFIG 
# include BOOST_USER_CONFIG 
#endif 

Как правильно включать повысить LIB в C++ XE 5? (Для получения дополнительной информации моих настроек компилятора как экран дамп)

C** screen dump

сюда прихожу полный не компиляцию образца код

//--------------------------------------------------------------------------- 

#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) 
{ 
} 

/

+0

У вас есть шанс получить помощь? – Franz

ответ

1

Я не могу не заметить, что ваши директивы #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> 

неверные:

A. Вы никогда не должны включать «config.hpp» напрямую, оставьте его для повышения.

B. Вы должны настроить свой путь таким образом, что включает в себя не говоря уже о BOOST версии

#include <boost/graph/graph_traits.hpp> 
    #include <boost/adjacency_list.hpp> 

Наиболее вероятной причиной ваших проблем является то, что из-за вашего стиля #include вы испортите две версии повышающего вместе.

Поддержка вашего компилятора (Embarcadero, бывший Borland, справа?) Не очень последовательна в новых версиях Boost. Может быть, установка Boost не может выводить некоторые ограничения свойств и оптимизацию этого компилятора. Разработчики Boost даже не знают, как получить свою версию: http://lists.boost.org/Archives/boost/2013/09/206546.php.

Скорее всего, вам придется делать это самостоятельно или, возможно, проконсультироваться с некоторыми документами компилятора, как использовать Boost с ним. Возможно, вы захотите переключиться на более старые версии Boost (1.49?), Когда был поддержан компилятор (или его предшественник).

Отвечая на ваш конкретный вопрос, отключите пользовательский конфигурационный заголовок, вы можете #define BOOST_NO_USER_CONFIG в настройках вашего компилятора. Но если вам это нужно, скорее всего, у вас уже серьезные проблемы.

+0

RAD Studio XE 5 должен поддерживать Boost 1_50 в режиме X64 бит и Boost 1_34 в режиме X32 бит. Кроме того, использование #include не могло даже скомпилировать пустой проект, поскольку он не обнаружил файл. – Franz

+0

«Также используется #include не смог даже скомпилировать пустой проект, так как он спрятал файл, который не найден »- это точно моя точка! Настройки вашего включения неверны, и это испортит ситуацию. Настройте параметры и убедитесь, что ваш компилятор находит файлы в boost 1.50 когда вы используете '#include