Is it safe to add the c++11 flag? I was under the impression that the GNU Radio build system didn't use c++11 for a reason. If that's not the case then I'll start using c++11 too :D
On Tue, Aug 30, 2016 at 4:25 AM, Pranav Padalkar < pranav.padal...@esk.fraunhofer.de> wrote: > Good Morning everyone, > > > I figured out how to add my own source files in GNURadio and also how to > add support for external libraries, in my case it was for Protobuf. I will > just write a note here, hoping that it will help someone in the future. > > > 1. I placed all of my own .h and .cpp files in the "lib" folder of my > module, along with the "impl.cc" files. > > 2. I edited "CMakeLists.txt" of the "lib" folder; in that I added all of > my own .cpp file names in "Setup library" section in the statement " > list(APPEND ...) ". > > > To add C++11 flag - > > 1. I edited "CMakeLists.txt" in the home folder of my module (i.e. > gnuradio/gr-*modulename*/CMakeLists.txt); in that I added a command > *set(CMAKE_CXX_FLAGS > "-std=c++11") *in "Compiler specific setup" section after > *add_definitions()*. > > > To add external libraries, in my case Protobuf - > > 1. I edited "CMakeLists.txt" in the "lib" folder of my module. > > 2. In "Setup library" section, i added some commands to find the library I > am looking for and then added them in "include_directories()" and in > "link_directories()". > > > include(FindProtobuf) > find_package(Protobuf REQUIRED) > > include_directories(${Boost_INCLUDE_DIR} ${Protobuf_INCLUDE_DIRS}) > link_directories(${Boost_LIBRARY_DIRS} ${Protobuf_LIBRARIES}) > > target_link_libraries(gnuradio-*modulename* ${Boost_LIBRARIES} > ${GNURADIO_ALL_LIBRARIES} ${Protobuf_LIBRARIES}) > > > After doing this it works for me now and I don't get attribute error > which was happening because of my source files and libraries not being > linked. > > > Regards, > Pranav Padalkar > Fraunhofer-Institut für Eingebettete Systeme und Kommunikationstechnik ESK > > ------------------------------ > *From:* Discuss-gnuradio <discuss-gnuradio-bounces+pranav.padalkar=esk. > fraunhofer...@gnu.org> on behalf of Pranav Padalkar <pranav.padalkar@esk. > fraunhofer.de> > *Sent:* Wednesday, August 24, 2016 9:19 AM > *To:* Dave NotTelling > *Cc:* discuss-gnuradio@gnu.org > *Subject:* Re: [Discuss-gnuradio] Attribute error: and support with > external class and header files > > > Hi Dave, > > > > Thanks for your reply. Actually I figured out the problem. After going > through the files of the already existing blocks, especially the > CMakeLists.txt, I figured out where I need to add my own header files. I > added entries of all the class files in the CMakeLists.txt inside “lib” > folder. I am not sure if this has solved the problem, but at least it is > compiling now. Currently I am facing the problem of how to make the > GnuRadio compiler to get the C++11 flag. I know it has to be added to the > CMake file, but I am not sure where exactly. If anyone knows about this, > then kindly let me know. I also need to include other libraries like > pthread, libboost_filesystem, etc. > > > > Thanks and Regards, > > Pranav > > > > *Von:* Dave NotTelling [mailto:dmp250...@gmail.com] > *Gesendet:* Dienstag, 23. August 2016 18:50 > *An:* Pranav Padalkar > *Cc:* discuss-gnuradio@gnu.org > *Betreff:* Re: [Discuss-gnuradio] Attribute error: and support with > external class and header files > > > > I've had bad luck just putting my own headers in OOT modules. The way I > do things now is to use gr_modtool add and select 'noblock'. Then just > remove the grc XML file created. Seems that YourModuleName_API is needed > before structs and classes or it doesn't get seen by Swig. Could be wrong > about that. Might just work for me on a fluke =\ > > > > On Tue, Aug 23, 2016 at 6:47 AM, Pranav Padalkar <pranav.padalkar@esk. > fraunhofer.de> wrote: > > Hello all, > > > > I have written a c++ code and I wish to implement as a block in GNURadio. > I created a module (named "newblocks") and a block (named "my_client) and > made appropriate changes. The thing is, I have many class and header files > for my c++ code, for eg. Protobuf. I put those files in a folder called > "client" inside "include" folder of my module > (gr-newblocks/include/newblocks/client). > It showed no error during cmake, make, make install and ldconfig. But when > I put the block in the flowgraph and run it, it gives me following error. > > > > File "/home/sdr/workspace/develop/Pranav/USRP_client/usrp_client.py", > line 115, in __init__ > self.newblocks_my_client_0 = newblocks.my_client("123", "8080") > AttributeError: 'module' object has no attribute 'my_client' > > > > I already had a working block in the same module, which I had created > earlier. And now even that block gives me same error. If I don't use any of > the two blocks, the flowgraph works fine. > > > > I, then, also added a CMakeLists.txt file in that "client" folder and > entered all the .h and .c files in the text file. I added the entry for > "client" folder in the "Add subdirectories" part of the CMakeLists.txt in > (gr-newblocks/ ). Is there anything else I need to do in order to use my > own class and header files? Do I also need to put the .o files along with > the header and class files? I tried with both, putting the .o files and not > putting them, it still shows the same error. > > I even created a new module and a new block and copy pasted my code and > header and class files. I still get the same error. I kindly ask for help > in this regard. I am using Ubuntu 14.04 LTS, GnuRadio 3.7.9.2, I am using a > lot of Boost 1.61. > > > > Thank you in advance. > > Best Regards, > > Pranav Padalkar > > Fraunhofer-Institut für Eingebettete Systeme und Kommunikationstechnik ESK > > > > > _______________________________________________ > 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