Не удается получить Cygwin для компиляции библиотек C ++ Boost - PullRequest
0 голосов
/ 02 марта 2012

Я пытаюсь начать работу с Boost, поэтому я пытаюсь скомпилировать простой пример задачи со страницы Boost "Getting Started". У меня было две проблемы, и я не уверен, что они связаны (я лучше, чем новичок, но не намного), но, возможно, они связаны ...

1-й выпуск: команда «tar --bzip2 -xf /path/to/boost_1_49_0.tar.bz2» не работала (да, я указал правильный путь, но он дал мне несколько ошибок, я забыл, что они были), поэтому я использовал "tar -xjvf" из каталога, где находится boost_1_49_0.tar.bz2. Это распаковало zip-файл, и я приступил к примеру ...

2-ая проблема: файл example.cpp не скомпилируется, первое выражение в коде - это #include «boost / lambda / lambda.hpp», но затем для каждого заголовочного файла lambda.hpp пытается получить доступ, есть «Нет». такой файл или каталог "ошибка компиляции. Например, вот два (из шести, и я получаю ошибки для всех 6) заголовочных файлов в lambda.hpp и ошибки, отображаемые компилятором cygwin:

boost / lambda / lambda.hpp: 14: 33: boost / lambda / core.hpp: такого файла или каталога нет boost / lambda / lambda.hpp: 21: 52: boost / lambda / detail / operator_actions.hpp: такого файла или каталога нет

Если это поможет, это команда, которую я запускаю для компиляции (я обычно создаю исполняемый файл в отдельной команде -o): g ++ -c example.cpp

Почему система не может их найти? Я добавил установленный каталог (путь / к / boost_1_49_0) в переменную PATH перед тем, как начать, так что я знаю, что это не так. Спасибо за любой совет ...

(Я смотрел на stackoverflow, и были похожие проблемы, но не помогли решения)

1 Ответ

1 голос
/ 02 марта 2012

Похоже, что вы уже решили первую проблему, а именно: вы должны указать флаг -j для tar, чтобы распаковать файл bzip2.

Для второй проблемы вам нужно указатьувеличить путь включения, указав его с помощью параметра командной строки -I или с помощью переменной среды CPLUS_INCLUDE_PATH .

...