Допустим, у меня есть общая библиотека libSomething.so
и файл заголовка something.h
.
Библиотека была кросс-скомпилирована и протестирована (или, что лучше, была скомпилирована непосредственно на целевой платформе, связана ипротестировано на примере приложения).Теперь я хочу использовать эту разделяемую библиотеку в другом огромном проекте, где Eclipse перекрестно компилирует все файлы и, после этого, я отправлю исполняемый файл цели.(К сожалению, невозможно скомпилировать этот проект непосредственно на цели).
Цель состоит в том, чтобы использовать ту же общую библиотеку на SDSoC * (программа Vivado, основанная на Eclipse).Для этого:
- щелкните правой кнопкой мыши приложение -> Свойства -> Сборка C / C ++ -> Настройка -> Настройка инструмента -> SDS ++ Linker -> Библиотеки
На консоли отображается 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 , но пока без ответа.