Существует несколько подходов к объединению общей библиотеки для работы с REDHAWK. Самый простой способ - установить библиотеку на GPP и выполнить шаги, описанные в разделе «Включая внешние библиотеки», найденные в REDHAWK documentation.
Подход, сделанный вами в dsplib, о котором вы просили, несколько отличается. Это создает зависимость библиотеки REDHAWK softpackage, которая устанавливается в SDRROOT и развернута во время выполнения вместе с вашим компонентом. Ниже перечислены шаги по созданию предварительного проекта C++, работающего в REDHAWK. Этот ответ не распространяется на получение библиотеки, чтобы построить или процесс его импорта в затмении, поскольку существует множество сообщений по этим темам:
Импорт библиотеки в вашей IDE.
Создайте свою общую библиотеку, так что у вас есть общий объект (файл .so)
Добавить .spd.xml файл в вашей библиотеке, например, как один нашел here.
Редактировать этот файл .spd.xml:
4а. Обновите тег localfile, чтобы указать местоположение вашего конкретного .so-файла.
4b. Убедитесь, что значение тега ид реализации представляет собой уникальный номер версии для библиотеки
Добавить .project файл, если он не существует, таких как найденному нашел here. Откройте файл .project и убедитесь, что следующие натуры включены:
<nature>gov.redhawk.ide.natures.sca.project</nature>
<nature>gov.redhawk.ide.natures.sca.component</nature>
Теперь вы должны быть в состоянии перетащить sofpackage библиотеки в корень SDR.
Вот шаги, чтобы обновить свои отдельные компоненты, которые строят, чтобы использовать новую библиотеку:
Отредактируйте компоненты Makefile.am в папке реализации каст. Отредактируйте _CXXFLAGS, чтобы добавить путь к вашим файлам заголовков, _LDADD, чтобы добавить вашу библиотеку, и _LDFLAGS, чтобы включить путь к вашей библиотеке. См. this example о том, как компонент agc модифицирует эти переменные, чтобы включить библиотеку dsp.
Редактировать файл .spd.xml для включения зависимости softpackage. В разделе реализации добавьте зависимость времени выполнения от вашей библиотеки, такую как найденная here.В частности - ваш раздел зависимости должна быть следующим:
<dependency type="runtime_requirements">
<softpkgref>
<localfile name="XXXX"/>
<implref refid="YYYY"/>
</softpkgref>
</dependency>
XXXX это путь к установленной библиотеке .spd.xml файлу в SDRROOT относительно каталога йота (она должна начинаться с/компонентами) YYYY это ваше конкретное значение реализации, определенное в пункте 4b выше.
Спасибо! Я в конечном итоге выяснил большую часть этого. Однако, похоже, что некоторые пакеты исходного кода не создают файл .so, пока вы не запустите команду «make install». Таким образом, мне пришлось изменить параметр -prefix в Eclipse, чтобы установить .so в каталог Release и добавить файл build.sh в проект Eclipse (изменение команды сборки). Казалось, это сработало. – wakeboard82