REDHAWK 2.2.5 в CentOS 7.5 - ошибка сборки при попытке добавить разделяемую библиотеку rh.dsp в компонент - PullRequest
0 голосов
/ 01 апреля 2020

Проходя учебник REDHAWK 2.2.5 (RH noob) по использованию общей библиотеки внутри компонента (https://redhawksdr.github.io/2.2.5/manual/shared-libraries/using-a-shared-library-project/), я столкнулся со следующей ошибкой:

...
checking for ossie home... /usr/local/redhawk/core
checking to see ossie is installed... checking for sdr root... /var/redhawk/sdr
configure: using /var/redhawk/sdr/ as installation prefix
checking whether make supports nested variables... (cached) yes
checking for PROJECTDEPS... yes
checking for sdr root... (cached) /var/redhawk/sdr
configure: error: Package rh.dsp was not found in the pkg-config search path.
Perhaps you should add the directory containing `rh.dsp.pc'
to the PKG_CONFIG_PATH environment variable
No package 'rh.dsp' found
make: *** No rule to make target `all'.  Stop.
checking for C++ soft package library rh.dsp... 

12:36:58 Build Failed. 1 errors, 0 warnings. (took 18s.558ms)

Я создал компонент HelloWorld согласно https://redhawksdr.github.io/2.2.5/manual/components/hello-world-component/ (без портов, кстати) и попытался добавить библиотеку Soft Pkg Ref "dsp", как показано в REDHAWK Explorer среды IDE в разделе "Shared Библиотеки / дсп». После «Сгенерировать все реализации» в компоненте HelloWorld я получил описанную выше ошибку сборки. Я попытался отредактировать файл configure.am через

export PKG_CONFIG_PATH=$SDRROOT/dom/deps/rh/dsp:$PKG_CONFIG_PATH

... но безрезультатно. Я посмотрел примеры компонентов, поставляемых с REDHAWK (в проводнике в разделе «Target SDR / Components / rh», например «autocorrelate»), чтобы увидеть, как это было сделано в REDHAWK. Одно отличие, которое я вижу, состоит в том, что зависимость Soft Pkg Ref от автокорреляции имеет после себя «(cpp)», а моя нет, то есть автокорреляция выглядит так: «Soft Pkg Ref: /deps/rh/dsp/dsp.spd. xml (cpp)».

1 Ответ

0 голосов
/ 02 апреля 2020

В качестве первого порта вызова вы должны проверить содержимое файла HelloWorld.spd. xml. Там вы должны увидеть раздел <implementation id="cpp">, который должен содержать:

<dependency type="runtime_requirements">
    <softpkgref>
        <localfile name="/deps/rh/dsp/dsp.spd.xml"/>
        <implref refid="cpp"/>
    </softpkgref>
</dependency>

Пример компонента FastFilter можно найти здесь (см. Строки 39 и 51).

...