использование Boost Graph Lib с EMBARCADERO RAD C ++ XE 5

0

Я хочу написать программу, используя 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? (для получения дополнительной информации мои настройки компилятора в качестве экранного дампа)

Изображение 174551

здесь приведен полный некомпилирующий пример кода

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

#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
    Есть ли шанс получить помощь?
Теги:
boost
delphi-xe5

1 ответ

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>

неверны:

О. Вы никогда не должны включать "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 в настройках вашего компилятора. Но если вам это нужно, скорее всего, у вас уже серьезные проблемы.

  • 0
    RAD Studio XE 5 должен поддерживать Boost 1_50 в битовом режиме X64 и Boost 1_34 в битовом режиме X32. Также с помощью #include <boost / graph / xxxxxxx.hpp> не удалось даже скомпилировать пустой проект, так как файл clains не найден ....
  • 0
    «Также с помощью #include <boost / graph / xxxxxxx.hpp> не удалось даже скомпилировать пустой проект, так как файл clains не найден» - это точно моя точка зрения! Ваши настройки включения неверны, и это все испортило. Настройте параметры и убедитесь, что ваш компилятор находит файлы в boost 1.50, когда вы используете #include <boost/graph/xxxxxxx.hpp Удачи!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню