discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: SWIG doesn't recognize argument in make()


From: Lukas Haase
Subject: Re: SWIG doesn't recognize argument in make()
Date: Tue, 17 Nov 2020 00:00:30 +0100

Additional detail: I tried it again:

$ gr_modtool rm tx_msg2tag
$ 
$ gr_modtool add test
$ rm -rf build; mkdir build; cd build; cmake ..; make

--> WORKS!!

$ gr_modtool add tx_msg2tag
$ rm -rf build; mkdir build; cd build; cmake ..; make

--> FAILS with the error below.


(of course, I edited the files to replace the <+...+> to make it compile).

It really seems it's the name of the block (tx_msg2tag) that makes things fail.
How can that be?

Lukas

Lukas wrote:
> 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 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]