Hi Cinaed, *I* am the author of gr-petro ;-) This is indeed a SWIG question. Or a question about OOT modules.
I created the module with gr_modtool. I inserted bunch of blocks with "add" command. Just this one below does not work. I have no idea why (and it drives me crazy). Hence my questions: - What could be the issue? - What exactly generates *swigPYTHON_wrap.cxx files ? - How are the argument lists for the functions determined? Thanks, Lukas > Hi Lukas - gr-petro is a OOT module - an "out of tree "module - it's not > part of gnuradio. > > You need to contact the author of the module. > > It's highly unlikely it's a problem with make - it's more likely a > mismatch between gr-petro and your installed version of gnuradio. > > For instance, the OOT was written for a version of gnuradio prior to > 3.8. > > In any case, I couldn't find the gr-petro source code with a Google > search so I can't even guess what the problem might be. It also helps to > state which OS you're using. > > -- Cinaed > >> Hi everyone, >> >> It's driving me NUTS! SWIG just won't recognize an argument to my make() >> function and hence build fails. I have other nearly identical blocks in >> the same module that work without issues. >> >> What exactly generates the *swigPYTHON_wrap.cxx files and how are the >> argument lists for the functions determined? >> >> Here is how my make fails: >> >> [ 77%] Building CXX object >> swig/CMakeFiles/petro_swig.dir/CMakeFiles/petro_swig.dir/petro_swigPYTHO >> N_wrap.cxx.o >> /home/petro/src/gr38/gr-petro/build/swig/CMakeFiles/petro_swig.dir/petro >> _swigPYTHON_wrap.cxx: In function ‘PyObject* >> _wrap_tx_msg2tag_make(PyObject*, PyObject*)’: >> /home/petro/src/gr38/gr-petro/build/swig/CMakeFiles/petro_swig.dir/petro >> _swigPYTHON_wrap.cxx:18687:48: error: no matching function for call to >> ‘gr::petro::tx_msg2tag::make()’ 18687 | result = >> gr::petro::tx_msg2tag::make(); | >> ^ In file included from >> /home/petro/src/gr38/gr-petro/build/swig/CMakeFiles/petro_swig.dir/petro >> _swigPYTHON_wrap.cxx:2881: >> /home/petro/src/gr38/gr-petro/lib/../include/petro/tx_msg2tag.h:48:19: >> note: candidate: ‘static gr::petro::tx_msg2tag::sptr >> gr::petro::tx_msg2tag::make(unsigned int)’ 48 | static sptr >> make(unsigned int time_increment_factor); | ^~~~ >> /home/petro/src/gr38/gr-petro/lib/../include/petro/tx_msg2tag.h:48:19: >> note: candidate expects 1 argument, 0 provided >> /home/petro/src/gr38/gr-petro/build/swig/CMakeFiles/petro_swig.dir/petro >> _swigPYTHON_wrap.cxx: In function ‘PyObject* >> _wrap_tx_msg2tag_sptr_make(PyObject*, PyObject*)’: >> /home/petro/src/gr38/gr-petro/build/swig/CMakeFiles/petro_swig.dir/petro >> _swigPYTHON_wrap.cxx:18914:30: error: no matching function for call to >> ‘gr::petro::tx_msg2tag::make()’ 18914 | result = (*arg1)->make(); >> | ^ In file included from >> /home/petro/src/gr38/gr-petro/build/swig/CMakeFiles/petro_swig.dir/petro >> _swigPYTHON_wrap.cxx:2881: >> /home/petro/src/gr38/gr-petro/lib/../include/petro/tx_msg2tag.h:48:19: >> note: candidate: ‘static gr::petro::tx_msg2tag::sptr >> gr::petro::tx_msg2tag::make(unsigned int)’ 48 | static sptr >> make(unsigned int time_increment_factor); | ^~~~ >> /home/petro/src/gr38/gr-petro/lib/../include/petro/tx_msg2tag.h:48:19: >> note: candidate expects 1 argument, 0 provided make[2]: *** >> [swig/CMakeFiles/petro_swig.dir/build.make:63: >> swig/CMakeFiles/petro_swig.dir/CMakeFiles/petro_swig.dir/petro_swigPYTHO >> N_wrap.cxx.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:466: >> swig/CMakeFiles/petro_swig.dir/all] Error 2 make: *** [Makefile:141: >> all] Error 2 >> >> As can be very, very clearly seen, tx_msg2tag::make(unsigned int) has >> ONE parameter (time_increment_factor). Yet SWIG wants to call >> gr::petro::tx_msg2tag::make(). >> >> I have tried regenerating the file, deleting build directory and >> starting from scratch but this error follows me like a nightmare. >> >> Thanks for suggestions! >> >> Lukas
