Eclipse: добавить внешнюю библиотеку для проекта c Не работает

Я сделал следующее:

  1. Создать новый проект c (Makefile Project с существующим кодом)
  2. Добавлена ​​переменная сборки, на которую жаловался мой Makefile
  3. Теперь мой исходный файл.c жалуется на файлы #include, потому что он не знает, где находится папка lib, я попытался добавить папку lib в путь к библиотеке (НЕ РАБОТАЕТ).

Как я могу связать свой проект с внешней папкой lib, чтобы мой исходный файл.c мог читать файлы.h, необходимые для #include?

Я добавил путь к библиотеке в Paths and Symbols->Includes, НО, когда я возвращаюсь к проекту, он показывает только корневую папку и ничего внутри нее. Должен ли я также добавить каждый отдельный файл.so lib?

2 ответа

Решение

Хорошо, так что я понял это:

(1) В начале у меня были source.c и MAKEFILE (2) Создать новый проект c (проект Makefile с существующим кодом) (3) MAKEFILE пожаловался на переменную, поэтому я добавил ее в переменную окружения (4) #include files жаловался, поэтому я добавил внешнюю библиотеку следующим образом: (а) я нашел путь к своей библиотеке и обнаружил, что до /lib есть папка include (b) папка include содержит список заголовочных файлов (c), поэтому я добавил путь к папка include НЕ папка lib под путями и символами include

РАБОТАЕТ, КАК ОЧАРОВАТЬСЯ!

Ответ здесь: Как вы добавляете библиотеки в Eclipse CDT? (Данный файл или каталог отсутствует)

@ cyfur01 имеет лучший ответ:

Что добавить, зависит от того, что вы пытаетесь включить. В случае Boost существует несколько библиотек только для заголовков, и есть некоторые библиотеки, которые требуют связывания в библиотеках статических / разделяемых объектов (например, сериализация). Библиотеки только для заголовков

Для библиотек, содержащих только заголовки, вам просто нужно включить базовый каталог всех файлов заголовков. С помощью gcc вы добавляете каталог, используя флаг -I (например, -I C:/path/to/boost_52_0). С помощью управляемого проекта make-файла в Eclipse вы можете сделать то же самое, используя Properties > C/C++ Build

Настройки> Настройки инструмента> Компилятор GCC C++> Каталоги Статические библиотеки / Библиотеки общих объектов

Для статических библиотек / библиотек с общими объектами вы должны указать две опции:

-l --> The name of the library, less the 'lib' prefix and the file suffix (e.g., libboost_serialization.dll -> boost_serialization
-L --> The directory to look for the library file in. This is only needed if the library is on a non-standard path.

Как отметил @Chris, для проекта управляемого make-файла обе эти опции могут быть установлены через Свойства> Сборка C / C++> Настройки> Настройки инструмента> GCC C++ Linker > Библиотеки

Другие вопросы по тегам