Hi Zhihong, please stop posting screenshots of text. It's text, you can mark it, copy it, and paste it to an email as text. It's way easier for everyone to deal with that.
Now, you've used target_link_libraries(tags gnuradio-uhd boost_system) which links the target "tags" against the libraries "gnuradio-uhd" and "boost_system". Now, the error you're getting is that the linker can't find things related to top_block. Point is that top_block belongs to the GNU Radio run-time. Hence, the error should be pointing you in the right direction: what you actually need to do is target_link_libraries(tags *gnuradio-runtime* gnuradio-uhd boost_system) Best regards, Marcus On 05.02.2016 06:39, Zhihong Luo wrote: > Hi, > > I created an OOT module, added the UHD into the required components > and added the following lines in the top-level CMakelist.txt and the > CMakelist.txt under the apps folder. > > > > The tesr.cc just makes a top_block: gr::top_block_sptr tb = > gr::make_top_block("tags"), > which leads to undefined reference. > > If I add another line "gr::uhd::usrp_source::sptr usrp_source = > gr::uhd::usrp_source::make(device_addr, uhd::stream_args_t("fc32")); > ", the error is: > > > I think it is a linker problem, but I can not find what I am missing. > Is there anyone who could help me fix this? > > Thanks, > Zhihong > > On Thu, Feb 4, 2016 at 9:34 AM, Zhihong Luo <zh...@umich.edu > <mailto:zh...@umich.edu>> wrote: > > Hi Tom, > > Thank you for the advice. The website seems to be really useful. > > Zhihong > > > 2016年2月4日星期四,Tom Rondeau <t...@trondeau.com > <mailto:t...@trondeau.com>> 写道: > > On Wed, Feb 3, 2016 at 8:28 PM, Zhihong Luo <zh...@umich.edu> > wrote: > > Hi Marcus, > > Can you be more specific about what I need to add to the > CMakeLists.txt? Because in the > <modulename>/apps/CMakeLists.tx, there is no "sources", > but only: > > include(GrPython) > > GR_PYTHON_INSTALL( > PROGRAMS > DESTINATION bin > ) > > And in the <modulename>/CMakeLists.txt, what do you mean > by "Add "uhd" to the list"? Is it "find_package(UHD)"? Or > things like including ${UHD_INCLUDE_DIRS} > ${GR_UHD_INCLUDE_DIRS} > to the directory? I try to learn from the built-in gr-uhd, > but there is no apps folder and its CMakeList.txt looks > very different. So I was lost. > > I am really unfamiliar with these, so more detailed > explanation will be much appreciated. Thanks. > > Zhihong Luo > > > > We appreciate your enthusiasm for use GNU Radio and building > stuff with it. However, the questions you are asking are more > related to C++, makefiles, and CMake. I think you'd be better > off studying those and learning the basics before asking > questions like that here. > > Another tactic you can take is to look at all of the projects > available on cgran.org <http://cgran.org> as well as look at > the GNU Radio source code itself. We have lots of examples out > there that you can learn from to do what you want here. > > Tom > > > > > On Wed, Feb 3, 2016 at 3:56 AM, Zhihong Luo > <zh...@umich.edu> wrote: > > Hi Marcus, > > Thank you for the detailed instructions! I'll test it > tomorrow and hopefully it can work :) Have a good night. > > Zhihong > > > 2016年2月3日星期三,Marcus Müller > <marcus.muel...@ettus.com> 写道: > > Hi Zhihong Luo, > > you're not linking your program against any GNU > Radio component, which is why the linker step in > your compiler call complains about all the symbols > from these libraries missing. > Normally, it's the job of a build system to set up > your compiler call correctly, but in this case, > somethin like > > g++ tags.cpp -o tags $(pkg-config --libs --cflags > gnuradio-runtime gnuradio-uhd) > > should work. > > I'd still recommend not doing that, but using > gr_modtool to create a new out-of-tree module > > gr_modtool newmod > > and add your file in the <modulename>/apps/ > folder, adding the filename to > <modulename>/apps/CMakeLists.txt under "sources". > Add "uhd" to the list of necessary GNU Radio > components in <modulename>/CMakeLists.txt > > Then, it's the normal CMake build procedure: > > cd <modulename> > mkdir build > cd build > cmake .. > make > make install > > On 03.02.2016 09:39, Zhihong Luo wrote: >> Hi Marcus, >> >> Sorry, I was typing and accidentally sent it out >> the previous one... The code is >> >> #include<gnuradio/top_block.h> >> #include<gnuradio/uhd/usrp_source.h> >> #include<uhd/utils/safe_main.hpp> >> #include<boost/make_shared.hpp> >> #include<boost/thread/thread.hpp> >> #include<boost/program_options.hpp> >> #include<csignal> >> #include<iostream> >> >> namespace po = boost::program_options; >> int UHD_SAFE_MAIN(int argc, char *argv[]){ >> std::string device_addr =" "; >> >> gr::top_block_sptr tb = >> gr::make_top_block("tags_demo"); >> >> gr::uhd::usrp_source::sptr usrp_source = >> gr::uhd::usrp_source::make(device_addr, >> uhd::stream_args_t("fc32")); >> >> } >> >> Then I ran the command: >> g++ tags.cpp -o tags -l boost_system >> >> which ends up having errors: >> >> undefined reference to gr::make_top_block, >> uhd::device_addr_t, gr::uhd::usrp_source and etc. >> >> Thanks, >> Zhihong Luo >> >> On Wed, Feb 3, 2016 at 4:29 PM, Zhihong Luo >> <zh...@umich.edu> wrote: >> >> Hi Marcus, >> >> Of course. Here are the codes: >> >> >> >> On Wed, Feb 3, 2016 at 4:13 PM, Marcus Müller >> <marcus.muel...@ettus.com> wrote: >> >> Hi Zhihong Luo, >> >> could you please rather share text than >> pictures of text, too small for reading? >> >> Best regards, >> Marcus >> >> >> On 03.02.2016 07:31, Zhihong Luo wrote: >>> Hi all, >>> >>> I just started to learn to use c++ for >>> gnuradio, and I copied some codes from >>> the "tags_demo.cc". But compilation >>> error occurred as shown in the following >>> screen shots. Can you tell me where I >>> made a mistake? >>> >>> Thanks, >>> Zhihong Luo >>> >>> >>> >>> >>> >>> >>> _______________________________________________ >>> 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 >> >> >> > > > > _______________________________________________ > 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