не могу найти библиотечные файлы в eclipse cdt - PullRequest
4 голосов
/ 02 июня 2010

Свойства / C / C ++ Сборка / Настройки GCC C ++ Linker / Библиотеки

Под библиотеками (-I) у меня есть libbost_system libbost_filesystem ... и под библиотекой пути поиска (-L) у меня есть / Главная / etobkru / boost_1_43_0 / boostBinaries / Библиотека

но когда я компилирую, я получаю g ++ -L / home / etobkru / boost_1_43_0 / boostBinaries / lib / -o "searchDirs" ./main.o -llibboost_system -llibboost_filesystem -llibboost_regex /usr/lib/gcc/i586-suse-linux/4.1.2/../../../../i586-suse-linux/bin/ld: не удается найти -llibboost_system

Я пытался с libbost_system.so и libbost_system.a, но я получаю ту же ошибку. Что я делаю не так и почему не могу затмить найти файлы. Потому что они там?

Ответы [ 4 ]

9 голосов
/ 02 июня 2010

Вам не нужна часть "lib" в имени. Просто ссылка с

-lboost_system -lboost_filesystem -lboost_regex
2 голосов
/ 02 июня 2010

Я думаю, это похоже на / usr / bin / ld: невозможно найти -llibeststring.a

Вы пробовали -lboost_system? Опция -l не ожидает ведущую библиотеку или завершающую .a или .so.

1 голос
/ 21 февраля 2013

На самом деле после большого разочарования я решил прочитать справочную страницу для ld!

l namespec --library = namespec Добавьте архив или объектный файл, указанный в namespec, в список файлов для ссылки. Эта опция может использоваться любое количество раз. Если namespec имеет форму: filename, ld будет искать путь к библиотеке для файла с именем filename, иначе он будет искать путь к библиотеке для файла с именем libnamespec.a.

, так как моя конкретная библиотека была чем-то вроде myfoobar.dll, ничего не работало, пока я не понял, что хочу, чтобы ld использовал фактическое имя файла. Как и другие, опубликовав снимки экрана, как добавить библиотеку в компоновщик, все, что мне нужно было сделать, это изменить «myfoobar» в поле на «: myfoobar.dll», и оно работало нормально.

Вы должны использовать ':', чтобы получить действительно конкретное имя файла для поиска и избегать форматирования имени файла по умолчанию, которое ожидается без него. Надеюсь, что это облегчает разочарование.

Красти,

1 голос
/ 18 августа 2010

Я знаю, что это немного не так, но вы можете попробовать -l: libbost_system.so, и он будет искать библиотеку с точно таким именем.

...