Существует несколько подходов к добавлению общей библиотеки для работы с REDHAWK. Самый простой подход — установить библиотеку на GPP и выполнить шаги, описанные в разделе «Включение внешних библиотек» в документе REDHAWK документация.
Подход, использованный в dsplib, о котором вы спрашивали, немного отличается. Это создает зависимость библиотеки программных пакетов REDHAWK, которая устанавливается в SDRROOT и развертывается во время выполнения вместе с вашим компонентом. Вот шаги, чтобы заставить существующий проект C++ работать в REDHAWK. Этот ответ не распространяется на сборку библиотеки или процесс ее импорта в eclipse, поскольку по этим темам есть множество сообщений:
Импортируйте библиотеку в свою IDE.
Создайте свою общую библиотеку, чтобы у вас был общий объект (файл .so)
Добавьте файл .spd.xml в свою библиотеку, например найденный здесь.
Отредактируйте этот файл .spd.xml:
4а. Обновите тег localfile, чтобы он указывал на расположение вашего конкретного файла .so.
4б. Убедитесь, что значение тега идентификатора реализации является уникальным номером версии для вашей библиотеки.
Добавьте файл .project, если он не существует, например найденный здесь. Откройте файл .project и убедитесь, что включены следующие типы:
<nature>gov.redhawk.ide.natures.sca.project</nature>
<nature>gov.redhawk.ide.natures.sca.component</nature>
Теперь у вас должна быть возможность перетащить библиотеку softpackage в корень SDR.
Вот шаги по обновлению ваших отдельных компонентов, которые вы создаете, чтобы использовать вашу новую библиотеку:
Отредактируйте компоненты Makefile.am в папке реализации cpp. Отредактируйте _CXXFLAGS, чтобы добавить путь к файлам заголовков, _LDADD, чтобы добавить свою библиотеку, и _LDFLAGS, чтобы включить путь к вашей библиотеке. См. этот пример, чтобы узнать, как компонент agc изменяет эти переменные для включения библиотеки dsp.
Отредактируйте файл .spd.xml, включив в него зависимость программного пакета. В разделе реализации добавьте зависимость времени выполнения от вашей библиотеки, например найденную здесь. В частности, ваш раздел зависимостей должен быть следующим:
<dependency type="runtime_requirements">
<softpkgref>
<localfile name="XXXX"/>
<implref refid="YYYY"/>
</softpkgref>
</dependency>
XXXX — это путь к файлу .spd.xml вашей установленной библиотеки в SDRROOT относительно каталога dom (он должен начинаться с /components). YYYY — это конкретное значение реализации, определенное в 4b выше.
person
Youssef Bagoulla
schedule
15.08.2013