Hi Devin,

in include/my_mod/api.h you'll find a #define like this

#define MY_MOD_API __STUFF

use MY_MOD_API in front of the classes and free-standing functions you
want to export, like

uint32_t MY_MOD_API crc32(unsigned int, void const*, unsigned long);

Best regards,
Marcus

PS: having written your own CRC is cool, but you can probably use one of
the many existing implementations!


On 18.11.2016 17:15, devin kelly wrote:
> Hello,
>
> I've created my own GR module with GR mod tool.  I added two files
>
>    include/my_mod/crc.h
>    lib/crc.cc
>
> And I can use the functions (crc32 for example) in those files
> perfectly fine within classes that wind up in libgnuradio-my_mod.so. 
> However, I can't use the functions in crc.h/crc.cc in external
> applications that link to libgnuradio-my_mod.so. 
>
> The correct symbols exist in libgnuradio-my_mod.so however the symbols
> are local, not global.
>
> $ readelf -a lib/libgnuradio-my_mod.so | grep crc32
>    192: 0000000000228440  1024 OBJECT  LOCAL  DEFAULT   24 crc32_tab
>    426: 000000000000f3f0    52 FUNC    LOCAL  DEFAULT   11 _Z5crc32jPKvm
>
> How can I expose crc32 to the outside world?  Do I have to make the
> change in one of my CMakeLists.txt files or one of the source files? 
> The function (crc32) isn't a static.
>
> Thanks for any help,
> Devin
>
>
> _______________________________________________
> 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

Reply via email to