Автоинструмент проекта и внешние библиотеки на Eclipse
Я пытаюсь построить проект Autotools, используя Yocto ADT Plugin и Eclipse Luna. Мне нужно включить некоторые внешние библиотеки в проект и, если быть более точным, библиотеки boost. Давайте рассмотрим самый простой вариант: библиотека только для заголовков. Я должен быть в состоянии включить в свой проект. Я пытаюсь скомпилировать тестовый код:
#include <iostream>
#include <boost/lambda/lambda.hpp>
using namespace std;
int main(void) {
cout << "Hello World" << endl; /* prints Hello World */
return 0;
}
но я получаю сообщение об ошибке: "фатальная ошибка: boost/lambda/lambda.hpp: нет такого файла или каталога"
Конечно, я должен сказать компилятору, где найти библиотеку. Я пытался сделать это по-разному, но ничего не получилось. Чтобы сделать несколько примеров: Project -> Properties -> C/C++ General -> Path and Symbols Там я указал путь для загруженных библиотек и для скомпилированных библиотек (в данном случае не требуется, но добавлен для общности):
Включение правильно отображается в обозревателе проектов, но ошибка не исчезла.
Затем я попытался поработать над Project -> Properties -> C/C++ General -> Preprocessor Include:
Все еще получаю ту же ошибку.
Затем я попытался включить настройку Autotools, добавив опцию -I:
Конечно, это тоже не удалось. После каждой неудачной попытки сборки я запускаю "Очистить проект" и "Переконфигурировать проект", просто чтобы начать все сначала.
Странно то, что если я выбираю boost / lambda / lambda.hpp в редакторе, и я делаю "Открытое объявление", он находит файл:
На данный момент я не знаю, что делать, я явно что-то упускаю.
Не могли бы вы помочь мне?
Дополнительное примечание: если я запускаю исполняемый проект C++ с использованием GCC, библиотека распознается, и у меня нет проблем. Так что я думаю, что проблема в Autotools или Yocto ADT. Я даже добавил библиотеки наддува в свою сборку Yocto и SDK, но она не работает.
1 ответ
Мне удалось скомпилировать добавление в /src/Makefile.am включения в библиотеки.
Тем не менее, я не понимаю, почему это отличается от изменения флага настройки Autotools.
Если у кого-то есть ответ, пожалуйста, объясните.