Подтвердить что ты не робот

Ссылка static lib в eclipse cdt

Прошу прощения! Я много гугнул и не могу найти ответа! Это глупо, я знаю.

Я не могу ссылаться в статических библиотеках (*. a) в eclipse cdt. Я перечислил их все в Project- > Settings- > GCC С++ linker → Libraries. Я использовал абсолютный путь, чтобы убедиться, что у меня есть правильный lib... и я получаю:

не может найти -l/usr/local/lib/libboost_date_time.a

Я уверен, что это глупо, что я делаю неправильно: (

Изменить - и я должен упомянуть, что я связываю библиотеки во время выполнения...

4b9b3361

Ответ 1

Я помню, что у меня была аналогичная проблема, когда я компилировал наш код под Linux (исходя из фона Windows), и если я правильно помню, что абсолютный путь к статической lib тоже не работал.

Знаете ли вы, что для ссылки на "libboost_date_time.a" вам нужно указать "boost_date_time" без "lib" и ".a"? В моем случае это решило проблему. /usr/local/lib должно быть на вашем пути в любом случае AFAIR.

Ответ 2

Статические библиотеки или архивы - это всего лишь коллекция объектных файлов.

Добавить архив как Другие объекты в C/С++ Build → Настройки → С++ Linker → Разное:

enter image description here

Некоторые люди кричат ​​кровавое убийство, указав полный путь. Я нахожу, что это работает на практике (в отличие от теории в разы), и это не хуже, чем нарушение пути и имени файла, а затем указание их с помощью -L и -L. И я упомянул, что это действительно работает на практике...

Ответ 3

У меня была аналогичная проблема при добавлении libs в экран конфигурации C/C++ General->Paths & Symbols.

Вместо этого на экране C/C++ Build -> settings в разделе GCC C++ Linker / Libraries я добавил имя библиотеки без lib и .a в Libraries (-l) и добавил путь в путь поиска библиотек (-L). Это решило мою проблему