C++: Внешняя библиотека в CDT затмения

Сейчас я использую eclipse CDT для своего приложения C/C++, но есть проблема, когда я связываю свою внешнюю библиотеку, она не может быть загружена должным образом во время выполнения, даже если я поместил файл библиотеки рядом с исходным файлом, я дал библиотеку путь, и это имя правильно.

каталог проекта:

  1. включить (.h файлы)
  2. источник (.cpp. файлы..)
  3. Lib(libbozorth3.a,LSFMatcher.a)

Я хочу связать эти статические библиотеки с моим приложением. Я выполняю следующие шаги:

  1. Project-> Properties-> General-> Path и символы-> включают в себя путь к каталогу и библиотеки (bozorth3.a,LSFMatcher.a) и добавить путь к библиотеке.
  2. а также я добавляю ту же библиотеку в разделе компоновщика также

Когда я собираю программу, она отображает ошибку не может найти -lbozorth3.a не может найти -lLSFMatcher.a

Поэтому мне нужны правильные шаги для добавления внешней библиотеки в приложение c/ C++.

3 ответа

Решение

Я нормально настраиваю

  1. библиотека
  2. путь поиска библиотеки (необходим для компиляции)
  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" и замените второе "," на " " (пробел).

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