Использование общей библиотеки в среде Eclipse (SDSoC) - PullRequest
0 голосов
/ 08 мая 2018

Допустим, у меня есть общая библиотека libSomething.so и файл заголовка something.h.

Библиотека была кросс-скомпилирована и протестирована (или, что лучше, была скомпилирована непосредственно на целевой платформе, связана ипротестировано на примере приложения).Теперь я хочу использовать эту разделяемую библиотеку в другом огромном проекте, где Eclipse перекрестно компилирует все файлы и, после этого, я отправлю исполняемый файл цели.(К сожалению, невозможно скомпилировать этот проект непосредственно на цели).

Цель состоит в том, чтобы использовать ту же общую библиотеку на SDSoC * (программа Vivado, основанная на Eclipse).Для этого:

- щелкните правой кнопкой мыши приложение -> Свойства -> Сборка C / C ++ -> Настройка -> Настройка инструмента -> SDS ++ Linker -> Библиотеки

  • Путь поиска в библиотеке (-L) -> add -> "path / to / library"

  • Библиотеки (-l) -> add -> "libSomething" (также я пытался "libSomething.so "с тем же эффектом).

screenshot of the eclipse enviroment

На консоли отображается cannot find -llibSomething.Полная строка:

/opt/Xilinx/SDK/2017.4/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabihf/6.2.1/../../../../arm-linux-gnueabihf/bin/ld: cannot find -llibSomething

Кроме того, я попытался добавить папку и библиотеку в C / C ++ Общие -> Анализ кода -> Пути и символы -> Библиотеки и библиотекиДорожки.Результат тот же.

Кроме того, я прошел через консольные сообщения и проверил, что вызов компилятора sds ++ правильный:

sds++ -L/path/to/library --remote_ip_cache ......

Даже вMakefile, инструкция верна.Я не могу столкнуться с проблемой.Что я делаю не так?

В конце поста вопрос:

Как использовать (и связать) общую библиотеку в SDSoC?

SDSoC - это программа, разработанная xilinx.Больше информации здесь .Также я разместил аналогичный вопрос на форуме xilinx , но пока без ответа.

1 Ответ

0 голосов
/ 08 мая 2018

Компоновщик добавляет префикс lib и расширение файла, поэтому не включайте их в список библиотек. Используйте Something вместо libSomething.

...