Ссылка static lib в eclipse cdt
Прошу прощения! Я много гугнул и не могу найти ответа! Это глупо, я знаю.
Я не могу ссылаться в статических библиотеках (*. a) в eclipse cdt. Я перечислил их все в Project- > Settings- > GCC С++ linker → Libraries. Я использовал абсолютный путь, чтобы убедиться, что у меня есть правильный lib... и я получаю:
не может найти -l/usr/local/lib/libboost_date_time.a
Я уверен, что это глупо, что я делаю неправильно: (
Изменить - и я должен упомянуть, что я связываю библиотеки во время выполнения...
Ответы
Ответ 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)
. Это решило мою проблему