C++: Внешняя библиотека в CDT затмения
Сейчас я использую eclipse CDT для своего приложения C/C++, но есть проблема, когда я связываю свою внешнюю библиотеку, она не может быть загружена должным образом во время выполнения, даже если я поместил файл библиотеки рядом с исходным файлом, я дал библиотеку путь, и это имя правильно.
каталог проекта:
- включить (.h файлы)
- источник (.cpp. файлы..)
- Lib(libbozorth3.a,LSFMatcher.a)
Я хочу связать эти статические библиотеки с моим приложением. Я выполняю следующие шаги:
- Project-> Properties-> General-> Path и символы-> включают в себя путь к каталогу и библиотеки (bozorth3.a,LSFMatcher.a) и добавить путь к библиотеке.
- а также я добавляю ту же библиотеку в разделе компоновщика также
Когда я собираю программу, она отображает ошибку не может найти -lbozorth3.a не может найти -lLSFMatcher.a
Поэтому мне нужны правильные шаги для добавления внешней библиотеки в приложение c/ C++.
3 ответа
Я нормально настраиваю
- библиотека
- путь поиска библиотеки (необходим для компиляции)
- путь поиска во время выполнения (опция -rpath Linker)
(см. изображения ниже и поменяйте путь в флагах компоновщика на тот, который вы использовали в пути поиска в библиотеке)
Ты должен использовать -Wl,-rpath=${workspace_loc}/Liball
и не -Wl,-rpath,${workspace_loc}/Liball
,
Также в опции библиотеки -l добавить библиотеку, например, например. для libgcc.a добавить только gcc
Следует обратить внимание на то, что в скобках: Другие параметры (-Xlinker [опция]).
Способ передачи параметров отличается. Вместо того, чтобы использовать:
-Wl,-rpath,'${ProjDirPath}/../../system/lib'
Вы должны использовать:
-rpath '${ProjDirPath}/../../system/lib'
То есть удалите "-Wl" и замените второе "," на " " (пробел).