REDHAWK 2.2.5 on CentOS 7.5 - Build error when trying to add rh.dsp shared library to a component

167 Views Asked by At

While walking through the REDHAWK 2.2.5 tutorial (RH noob) on using a shared library within a component (https://redhawksdr.github.io/2.2.5/manual/shared-libraries/using-a-shared-library-project/), I ran into the following error:

...
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)

I created the HelloWorld component as per https://redhawksdr.github.io/2.2.5/manual/components/hello-world-component/ (has no ports, BTW), and attempted to add the Soft Pkg Ref library "dsp" as shown in the REDHAWK Explorer of the IDE under "Shared Libraries/dsp". After "Generate All Implementations" on the HelloWorld component, I got the above build failure. I attempted to edit the configure.am file via

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

...but to no avail. I took a look at sample components provided with REDHAWK (in Explorer under "Target SDR/Components/rh", like "autocorrelate") to see how it was done within REDHAWK. One difference I see is that the Soft Pkg Ref dependency on autocorrelate has a "(cpp)" after it and mine does not, i.e. autocorrelate looks like: "Soft Pkg Ref:/deps/rh/dsp/dsp.spd.xml(cpp)".

1

There are 1 best solutions below

0
RadioSilence On

As a first port of call, you should inspect the contents of the HelloWorld.spd.xml file. In there, you should see the <implementation id="cpp"> section, which should contain:

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

An example for the FastFilter component can be found here (see lines 39 and 51).