Yay, it works! Thank you, Basti and Marcus :)
So the only change I needed to make for my build system is to find the first target_link_libraries() under lib/CMakeLists.txt and add both ${GNURADIO_ALL_LIBRARIES} and uhd to the list (both are required). I did not have to add anything to the link list of the test project, nor did I have to add UHD to the GR_REQUIRED_COMPONENTS list in the root CMakeLists.txt. Thanks again! On Wed, Jun 20, 2018 at 3:00 PM Müller, Marcus (CEL) <muel...@kit.edu> wrote: > Basti applied hammer to nail's head. It's (probably) super effective. > > yeah... time_spec_t's functions aren't exported symbols of libgnuradio- > uhd, but of libuhd! This might work on some and not on other build > systems due to different handling of visibility of symbols *used* in a > library. uff! > > On Wed, 2018-06-20 at 11:04 +0100, Bastian Bloessl wrote: > > Any chances you are confusing libgnuradio-uhd.so with libuhd.so. To me > > it sounds like you want to link against the latter. > > > > Maybe some linkers resolve symbols from libuhd through libgnuradio-uhd > > and some don't (which might make sense if you do not use any symbols > > defined in libgnuradio-uhd). > > > > Best, > > Bastian > > > > On 6/19/2018 13:27, Gilad Beeri (ApolloShield) wrote: > > > The MESSAGE directive shows it should be ok - added to > > > lib/CMakeLists.txt, after the first target_link_libraries(), the line > > > "MESSAGE(STATUS "DEBUG GR LIBS: ${GNURADIO_ALL_LIBRARIES}")". > > > > > > The output: > > > / > > > / > > > /-- DEBUG GR LIBS: > > > > /home/user/gr/lib/libgnuradio-runtime.so;/home/user/gr/lib/libgnuradio-pmt.so;/usr/lib/liblog4cpp.so;/home/user/gr/lib/libgnuradio-filter.so;/home/user/gr/lib/libgnuradio-fft.so;/home/user/gr/lib/ > libgnuradio-uhd.so/ > > > / > > > / > > > I moved away all cmake/ files and then put them back one-by-one until > > > the build succeeded, which meant I ended up removing: > > > D cmake/Modules/CMakeParseArgumentsCopy.cmake > > > D cmake/Modules/FindGnuradioRuntime.cmake > > > D cmake/Modules/GrMiscUtils.cmake > > > D cmake/Modules/GrPython.cmake > > > D cmake/Modules/GrSwig.cmake > > > D cmake/Modules/GrTest.cmake > > > D cmake/Modules/UseSWIG.cmake > > > > > > but still no luck (the undefined symbol error still exists). > > > > > > It might be worth to mention, the version I use is 3.7.11.1. > > > > > > > > > On Tue, Jun 19, 2018 at 2:47 PM Müller, Marcus (CEL) <muel...@kit.edu > > > <mailto:muel...@kit.edu>> wrote: > > > > > > add a "message ()" directive that prints the GNURADIO_ALL_LIBRARIES > > > that is actually used in your lib/CMakeLists.txt. If that is wrong: > > > > > > Move your OOT's cmake/Modules/* out of the way – I do not endorse > the > > > fact that we're distributing copies of all the GNU Radio CMake > scripts > > > with our OOT template, as these might outdate locally. > > > > > > I must admit I don't have an OOT where I test gr-uhd linkage > myself. > > > > > > Best regards, > > > Marcus > > > > > > On Tue, 2018-06-19 at 14:42 +0300, Gilad Beeri (ApolloShield) > wrote: > > > > I've done "rm -rf build/*" and "pushd build; cmake ../; and > make > > > -j7; and make install; popd" ~ 50 times since yesterday :) > > > > > > > > Any suggestions for debugging it? > > > > > > > > On Tue, Jun 19, 2018 at 2:33 PM Müller, Marcus (CEL) > > > <muel...@kit.edu <mailto:muel...@kit.edu>> wrote: > > > > > I must admit this is surprising to me, as the line of code > where > > > > > LIBS=... is printed is pretty integrally coupled to the line > that > > > > > specifies what GNURADIO_ALL_LIBRARIES is. Maybe CMake got > confused? > > > > > I know this is kind of a "haveyoutriedturningitoffandonagain" > > > answer, > > > > > but have you tried completely rm'ing your build/ directory and > > > letting > > > > > CMake run anew? > > > > > > > > > > Best regards, > > > > > Marcus > > > > > > > > > > :e ../cmake/Modules/FindG On Tue, 2018-06-19 at > > > 14:19 +0300, > > > > > Gilad Beeri (ApolloShield) wrote: > > > > > > I have a similar problem as described in > > > > https://lists.gnu.org/archive/html/discuss-gnuradio/2015-05/msg00195.html. > > > > > > > > > > > > When I try to run tests (with Python), I get: > > > > > > > > > > > > Traceback (most recent call last): > > > > > > File "python/myblock.py", line 12, in <module> > > > > > > from myproj.myproj_swig import mitigation_source > > > > > > File > > > "/home/user/gr/lib/python2.7/site-packages/myproj/myproj_swig.py", > > > line 28, in <module> > > > > > > _myproj_swig = swig_import_helper() > > > > > > File > > > "/home/user/gr/lib/python2.7/site-packages/myproj/myproj_swig.py", > > > line 24, in swig_import_helper > > > > > > _mod = imp.load_module('_myproj_swig', fp, pathname, > > > description) > > > > > > ImportError: > > > /home/user/gr/lib/libgnuradio-myproj-1.0.0git.so.0.0.0: undefined > > > symbol: _ZN3uhd11time_spec_tC1Eld > > > > > > > > > > > > > > > > > > I did add "UHD" to the line starting with > > > "set(GR_REQUIRED_COMPONENTS" (in my root CMakeLists.txt) so I get > > > the output of > > > > > > > > > > > > Checking for GNU Radio Module: UHD > > > > > > -- Checking for module 'gnuradio-uhd' > > > > > > -- Found gnuradio-uhd, version 3.7.11.1-as > > > > > > * INCLUDES=/home/user/gr/include > > > > > > * > > > > > LIBS=/home/user/gr/lib/libgnuradio-uhd.so;/home/user/gr/lib/libgnuradio-runtime.so;/home/user/gr/lib/libgnuradio-pmt.so;/usr/lib/liblog4cpp.so > > > > > > -- Found GNURADIO_UHD: > > > > > /home/user/gr/lib/libgnuradio-uhd.so;/home/user/gr/lib/libgnuradio-runtime.so;/home/user/gr/lib/libgnuradio-pmt.so;/usr/lib/liblog4cpp.so > > > > > > > > > GNURADIO_UHD_FOUND = TRUE > > > > > > > > > > > > I also have in my lib/CMakeLists.txt file > > > ${GNURADIO_ALL_LIBRARIES} in both target_link_libraries() lists. > > > > > > > > > > > > I have "#include <uhd/types/time_spec.hpp>" in my header > file. > > > > > > > > > > > > But for some reason, it doesn't seem to link gnuradio-uhd: > > > > > > > > > > > > readelf -d > /home/user/gr/lib/libgnuradio-myproj-1.0.0git.so.0.0.0 > > > > > > > > > > > > 0x0000000000000001 (NEEDED) Shared library: > > > [libboost_system.so.1.58.0] > > > > > > 0x0000000000000001 (NEEDED) Shared library: > > > [libgnuradio-runtime-3.7.11.1-as.so.0.0.0] > > > > > > 0x0000000000000001 (NEEDED) Shared library: > > > [libgnuradio-pmt-3.7.11.1-as.so.0.0.0] > > > > > > 0x0000000000000001 (NEEDED) Shared library: > > > [liblog4cpp.so.5] > > > > > > 0x0000000000000001 (NEEDED) Shared library: > > > [libgnuradio-filter-3.7.11.1-as.so.0.0.0] > > > > > > 0x0000000000000001 (NEEDED) Shared library: > > > [libstdc++.so.6] > > > > > > 0x0000000000000001 (NEEDED) Shared library: > > > [libm.so.6] > > > > > > 0x0000000000000001 (NEEDED) Shared library: > > > [libgcc_s.so.1] > > > > > > 0x0000000000000001 (NEEDED) Shared library: > > > [libc.so.6] > > > > > > 0x000000000000000e (SONAME) Library soname: > > > [libgnuradio-myproj-1.0.0git.so.0.0.0] > > > > > > _______________________________________________ > > > > > > Discuss-gnuradio mailing list > > > > > > Discuss-gnuradio@gnu.org <mailto:Discuss-gnuradio@gnu.org> > > > > > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > > > > > > > > > > > _______________________________________________ > > > Discuss-gnuradio mailing list > > > Discuss-gnuradio@gnu.org > > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > >
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio