2015-04-27 2 views
3

Я пытаюсь включить библиотеки boost в свою программу, в частности lexical_cast и geometry. Я включаю их, используя #include"boost/boost/geometry.hpp" и #include"boost/boost/lexical_cast/lexical_cast_old.hpp".Как включить библиотеки boost?

Когда я запускаю код, я получаю фатальную ошибку «Не могу открыть файл include:« boost/geometry/geometry.hpp »: нет такого файла или каталога», который приводит меня к другому .hpp-файлу в библиотеке boost, который включает другой, но использует #include<...> вместо #include"...", когда я его заменяю на "...", ошибка для этого идет, но заменяется следующей библиотекой, включенной с использованием #include<...> вместо #include"...". Я чувствую, что это может привести меня к кроличьей дыре, заменяющей почти все экземпляры #include<...>#include"...", которые потребуют возраста. Есть ли настройка, которую я могу изменить, или часть кода, которую я мог бы включить, которая бы разобрала это? Или я могу просто избавиться от всех других ненужных библиотек и изменить те, которые мне нужны (я знаю, что это все равно будет, поскольку они, похоже, полагаются друг на друга).

Благодаря

У меня есть повысить библиотеку (boost_1_58_0)

+0

Вам необходимо передать компилятор каталоги include. Какой компилятор вы используете? – Nidhoegger

+0

вместо 'boost/boost /' * filename * вы должны иметь 'boost /' * filename *. Соответственно отрегулируйте путь включения компилятора. Также используйте угловые скобки для включения. –

+0

Я не уверен, как мне узнать? Я использую визуальные студии 2012 года и пишу на C++ – Peter

ответ

4

Сначала вы должны прочитать о разнице между #include "filepath" и #include <filepath>here.
Лично я работаю с boost из Visual Studio следующим образом:
1. Перейдите к Project properties -> C/C++ -> General -> Additional Include Directories и добавьте путь к boost библиотеке корня (в моем случае C:\Program Files (x86)\Boost_1_53).
2. Включите файл hpp в свои источники, например #include <boost/lexical_cast/lexical_cast_old.hpp>
Если вы используете библиотеки, не содержащие заголовков, вы также должны добавить путь к boost libs в Project properties -> Linker -> General -> Additional Libraries Directories.

0

Например:

  1. библиотека подталкивание - c:\boost\boost_1_58_0 (запустить booststrap.bat и b2 как администратор)
  2. Добавить струне $(THIRD_PARTY)\boost\boost_1_58_0\include и $(THIRD_PARTY)\boost\boost_1_58_0\ в VC++Directories->Include Directories
+0

К сожалению, после выполнения шагов сборки у меня нет папки include!? –

0

В VS2012 щелкните правой кнопкой мыши проект и выберите «Свойства».

В диалоговом окне свойств выберите «Свойства конфигурации», затем «Каталоги VC++».

Вам нужно будет добавить путь включения boost в список «Включить каталоги».

Если вы используете все библиотеки только для заголовков, тогда все готово. В противном случае вам нужно будет добавить путь повышения lib к «Библиотечным каталогам».

Смежные вопросы