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

Seven Du dujinfang at gmail.com
Sun Sep 30 07:42:07 MSD 2012


The following Makefile works for me when I'm working on mod_mp4v2 

LOCAL_CFLAGS=-I./mp4v2-2.0.0/include/mp4v2
LOCAL_LDFLAGS=-static ./mp4v2-2.0.0/.libs/libmp4v2.a

BASE=../../../..
include $(BASE)/build/modmake.rules


-- 
Seven Du
Sent with Sparrow (http://www.sparrowmailapp.com/?sig)


On Sunday, September 30, 2012 at 10:46 AM, Jon Lederman wrote:

> 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 (mailto: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 (mailto: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 (mailto: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 (mailto: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 (mailto:consulting at freeswitch.org)
> > > > > http://www.freeswitchsolutions.com (http://www.freeswitchsolutions.com/)
> > > > > 
> > > > > 
> > > > >  (/)
> > > > > 
> > > > > Official FreeSWITCH Sites
> > > > > http://www.freeswitch.org (http://www.freeswitch.org/)
> > > > > http://wiki.freeswitch.org (http://wiki.freeswitch.org/)
> > > > > http://www.cluecon.com (http://www.cluecon.com/)
> > > > > 
> > > > > FreeSWITCH-dev mailing list
> > > > > FreeSWITCH-dev at lists.freeswitch.org (mailto: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 (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 (mailto:MSN%3Aanthony_minessale at hotmail.com)
> > > > GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com (mailto:PAYPAL%3Aanthony.minessale at gmail.com)
> > > > IRC: irc.freenode.net (http://irc.freenode.net/) #freeswitch
> > > > 
> > > > FreeSWITCH Developer Conference
> > > > sip:888 at conference.freeswitch.org (mailto:sip%3A888 at conference.freeswitch.org)
> > > > googletalk:conf+888 at conference.freeswitch.org (mailto:googletalk%3Aconf%2B888 at conference.freeswitch.org)
> > > > pstn:+19193869900 (tel:%2B19193869900)
> > > > _________________________________________________________________________
> > > > Professional FreeSWITCH Consulting Services:
> > > > consulting at freeswitch.org (mailto:consulting at freeswitch.org)
> > > > http://www.freeswitchsolutions.com (http://www.freeswitchsolutions.com/)
> > > > 
> > > > 
> > > >  (/)
> > > > 
> > > > Official FreeSWITCH Sites
> > > > http://www.freeswitch.org (http://www.freeswitch.org/)
> > > > http://wiki.freeswitch.org (http://wiki.freeswitch.org/)
> > > > http://www.cluecon.com (http://www.cluecon.com/)
> > > > 
> > > > FreeSWITCH-dev mailing list
> > > > FreeSWITCH-dev at lists.freeswitch.org (mailto: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 (http://www.freeswitch.org/)
> > > 
> > > _________________________________________________________________________
> > > Professional FreeSWITCH Consulting Services:
> > > consulting at freeswitch.org (mailto:consulting at freeswitch.org)
> > > http://www.freeswitchsolutions.com (http://www.freeswitchsolutions.com/)
> > > 
> > > 
> > >  (/)
> > > 
> > > Official FreeSWITCH Sites
> > > http://www.freeswitch.org (http://www.freeswitch.org/)
> > > http://wiki.freeswitch.org (http://wiki.freeswitch.org/)
> > > http://www.cluecon.com (http://www.cluecon.com/)
> > > 
> > > FreeSWITCH-dev mailing list
> > > FreeSWITCH-dev at lists.freeswitch.org (mailto: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 (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 (mailto:MSN%3Aanthony_minessale at hotmail.com)
> > GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com (mailto:PAYPAL%3Aanthony.minessale at gmail.com)
> > IRC: irc.freenode.net (http://irc.freenode.net/) #freeswitch
> > 
> > FreeSWITCH Developer Conference
> > sip:888 at conference.freeswitch.org (mailto:sip%3A888 at conference.freeswitch.org)
> > googletalk:conf+888 at conference.freeswitch.org (mailto:googletalk%3Aconf%2B888 at conference.freeswitch.org)
> > pstn:+19193869900
> > _________________________________________________________________________
> > Professional FreeSWITCH Consulting Services:
> > consulting at freeswitch.org (mailto: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 (mailto: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 (mailto: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 (mailto: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/20120930/c72bea97/attachment.html 


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