[Freeswitch-dev] Linking C++ .so Into Custom Freeswitch Module

Jon Lederman jon2718 at gmail.com
Sun Sep 30 06:46:26 MSD 2012


Hi Anthony,

I had a question about the LOCAL_LIBADD syntax.  I have several libraries I need to add.  
When I tried:

LOCAL_LIBADD=path_to_lib1/lib1.a
LOCAL_LIBADD+=path_to_lib2/lib2.a
LOCAL_LIBADD+=path_to_lib3/lib3.a

However, this didn't seem to work.  Does the += syntax append libraries?  I was able to get around this problem by extracting the .a files and the combining them in a single .a file, which I was able to load into audio weaver.  What is the correct syntax to add multiple libraries in the makefile?

Thanks.

-Jon
On Sep 28, 2012, at 9:26 AM, Anthony Minessale <anthony.minessale at gmail.com> wrote:

> if you want to do it that way then build a static version of your aw.so and use the .a in the LOCAL_LIBADD
> 
> if you want to do the .so it would have to be installed somewhere and in the LD_LIBRARY_PATH at runtime
> 
> On Fri, Sep 28, 2012 at 10:56 AM, Jon Lederman <jon2718 at gmail.com> wrote:
> Hi,
> 
> Thanks for your reply.  The problem is that I'm not sure I'm linking the external libs correctly.  My module makefile is:
> 
> BASE=../../../..
> LOCAL_LIBADD+=./lib/aw.so
> include $(BASE)/build/modmake.rules
> 
> Shouldn't LOCAL_LIBADD be enough.  Or do I need additional statements in my makefile.  The aw.so defines the symbol in question yet I still receive the missing symbol message when I try to load the module.
> 
> Any help would be greatly appreciated.
> 
> Thanks in advance.
> 
> Jon
> 
> 
> On Sep 28, 2012, at 11:27 AM, Anthony Minessale <anthony.minessale at gmail.com> wrote:
> 
>> to auto-load you also need modules.conf.xml modules.conf is only for building.
>> 
>> The module can't load because it's missing the symbol:
>> 
>> ZN10CAWETalker9ConfigureEPKc
>> 
>> So you need to link in any external libs you might be using into your .so
>> 
>> 
>> On Fri, Sep 28, 2012 at 12:05 AM, Jon Lederman <jon2718 at gmail.com> wrote:
>> Hi,
>> 
>> I am writing a custom module called mod_aw for freeswitch that uses a dynamic library called aw.so containing a c++ class.  I edited the makefile for my module to:
>> 
>> BASE=../../../..
>> LOCAL_LIBADD+=./lib/aw.so
>> include $(BASE)/build/modmake.rules
>> 
>> I am able to build the module and also modified modules.conf to include the new module.
>> 
>> When I start freeswitch, I don't see a message that the module was loaded.
>> 
>> When I type: reload mod_aw I receive the following error:
>> 
>> 2012-09-28 04:49:52.738493 [CRIT] switch_loadable_module.c:1310 Error Loading module /usr/local/freeswitch/mod/mod_aw.so
>> **/usr/local/freeswitch/mod/mod_aw.so: undefined symbol: _ZN10CAWETalker9ConfigureEPKc**
>> 
>> -ERR unloading module [No such module!]
>> +OK Reloading XML
>> -ERR loading module [module load file routine returned an error]
>> 
>> I know the library works as I have tried it in another program outside of freeswitch.  I am not sure what I am doing wrong.  I am wondering whether I need to provide extern "C" linkage for the c++ library.  However, I only have the .h file and .so file for the library.  Or, do I need to add something to my Makefile.
>> 
>> Any help on how to configure this would be greatly appreciated.
>> 
>> Thank you in advance.
>> 
>> -Jon
>> _________________________________________________________________________
>> Professional FreeSWITCH Consulting Services:
>> consulting at freeswitch.org
>> http://www.freeswitchsolutions.com
>> 
>> 
>> 
>> 
>> Official FreeSWITCH Sites
>> http://www.freeswitch.org
>> http://wiki.freeswitch.org
>> http://www.cluecon.com
>> 
>> FreeSWITCH-dev mailing list
>> FreeSWITCH-dev at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
>> http://www.freeswitch.org
>> 
>> 
>> 
>> -- 
>> Anthony Minessale II
>> 
>> FreeSWITCH http://www.freeswitch.org/
>> ClueCon http://www.cluecon.com/
>> Twitter: http://twitter.com/FreeSWITCH_wire
>> 
>> AIM: anthm
>> MSN:anthony_minessale at hotmail.com
>> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
>> IRC: irc.freenode.net #freeswitch
>> 
>> FreeSWITCH Developer Conference
>> sip:888 at conference.freeswitch.org
>> googletalk:conf+888 at conference.freeswitch.org
>> pstn:+19193869900
>> _________________________________________________________________________
>> Professional FreeSWITCH Consulting Services:
>> consulting at freeswitch.org
>> http://www.freeswitchsolutions.com
>> 
>> 
>> 
>> 
>> Official FreeSWITCH Sites
>> http://www.freeswitch.org
>> http://wiki.freeswitch.org
>> http://www.cluecon.com
>> 
>> FreeSWITCH-dev mailing list
>> FreeSWITCH-dev at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
>> http://www.freeswitch.org
> 
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services:
> consulting at freeswitch.org
> http://www.freeswitchsolutions.com
> 
> 
> 
> 
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://wiki.freeswitch.org
> http://www.cluecon.com
> 
> FreeSWITCH-dev mailing list
> FreeSWITCH-dev at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
> http://www.freeswitch.org
> 
> 
> 
> 
> -- 
> Anthony Minessale II
> 
> FreeSWITCH http://www.freeswitch.org/
> ClueCon http://www.cluecon.com/
> Twitter: http://twitter.com/FreeSWITCH_wire
> 
> AIM: anthm
> MSN:anthony_minessale at hotmail.com
> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
> IRC: irc.freenode.net #freeswitch
> 
> FreeSWITCH Developer Conference
> sip:888 at conference.freeswitch.org
> googletalk:conf+888 at conference.freeswitch.org
> pstn:+19193869900
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services:
> consulting at freeswitch.org
> http://www.freeswitchsolutions.com
> 
> 
> 
> 
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://wiki.freeswitch.org
> http://www.cluecon.com
> 
> FreeSWITCH-dev mailing list
> FreeSWITCH-dev at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
> http://www.freeswitch.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-dev/attachments/20120929/0dde95df/attachment.html 


Join us at ClueCon 2011 Aug 9-11, 2011
More information about the FreeSWITCH-dev mailing list