Because the modules all use the core API functions, which are provided by libfreeswitch.so.<br><br>I've just checked and the .so is used by both the freeswitch binary and all the modules. That means although all modules depend on the library, it's only loaded into memory once so you're not wasting memory. If it was compiled statically it'd mean huge module files.<br>
<br>The .la is just used then to generate the .so. As a sideeffect the .la is also distributed into the mod directory (as .la and .a) so you can link statically if you're embedding FS in your own app if you wish, but I don't think they're actually used.<br>
<br>-Steve<br><br><br><br><br><div class="gmail_quote">On 17 June 2011 01:10, jesse <span dir="ltr"><<a href="mailto:chat2jesse@gmail.com">chat2jesse@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
If you look at mod_console.so make log, why it depends on libfreeswitch.so?<div><br></div><div><div>Creating mod_console.so...</div><div>.... -fPIC .... -D_GNU_SOURCE -shared -o .libs/mod_console.so -shared -Wl,-x .libs/mod_console.o -lm -L/home/xyz/work/freeswitch-1.0.6/lib /home/xyz/work/freeswitch-1.0.6/.libs/libfreeswitch.so -L/home/xyz/work/freeswitch-1.0.6/libs/apr-util/xml/expat/lib</div>
</div><div><div></div><div class="h5"><div><br><br><div class="gmail_quote">On Thu, Jun 16, 2011 at 12:47 PM, Steven Ayre <span dir="ltr"><<a href="mailto:steveayre@gmail.com" target="_blank">steveayre@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I think it's because it compiles libfreeswitch as a .la so that it can be build into the freeswitch binary. libfreeswitch.so is also distributed (and built from the .la) so that you can embed freeswitch within your own program.<br>
<br>I'm sure one of the main devs could confirm that...<br><br>-Steve<div><div></div><div><br><br><br><br><br><div class="gmail_quote">On 16 June 2011 20:38, jesse <span dir="ltr"><<a href="mailto:chat2jesse@gmail.com" target="_blank">chat2jesse@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p>Ok, I know the difference between .so and .a/.la, my question is why freeswitch makefile needs to create both libfreeswitch.so and <a href="http://libfreewitch.la" target="_blank">libfreewitch.la</a>? You either dynamic link or static link. I am confused here. ..</p>
<div><div></div><div>
<div class="gmail_quote">On Jun 16, 2011 12:27 PM, "Steven Ayre" <<a href="mailto:steveayre@gmail.com" target="_blank">steveayre@gmail.com</a>> wrote:<br type="attribution">> They're built in. They're not separate modules, there's no need to load<br>
> them.<br>> <br>> The .so is a shared library.<br>> The .la is a static library created by libtool. It's like a .a file if you<br>> weren't using libtool.<br>> <br>> -Steve<br>> <br>> <br>
> On 16 June 2011 20:02, jesse <<a href="mailto:chat2jesse@gmail.com" target="_blank">chat2jesse@gmail.com</a>> wrote:<br>> <br>>> in the core? I guess it is included in libfreeswitch.so.<br>>><br>
>> based on the makefile output the libfreeswitch has two forms :<br>
>> <a href="http://libfreeswitch.la" target="_blank">libfreeswitch.la</a> and libfreeswitch.so, what is the reason ? It creates a<br>>> big headache for our cross compiling..<br>>><br>>> -jesse<br>
>><br>>><br>
>> On Thu, Jun 16, 2011 at 11:31 AM, Anthony Minessale <<br>>> <a href="mailto:anthony.minessale@gmail.com" target="_blank">anthony.minessale@gmail.com</a>> wrote:<br>>><br>>>> in the core =D<br>
>>><br>
>>><br>>>> On Thu, Jun 16, 2011 at 1:17 PM, jesse <<a href="mailto:chat2jesse@gmail.com" target="_blank">chat2jesse@gmail.com</a>> wrote:<br>>>> > I am doing cross compiling of freeswitch.<br>
>>> > 2011-06-16 11:12:46.912825 [WARNING] switch_loadable_module.c:948 Module<br>
>>> > path /CORE_SOFTTIMER_MODULE.so and file CORE_SOFTTIMER_MODULE to be<br>>>> loaded<br>>>> > ...!<br>>>> > 2011-06-16 11:12:46.912890 [CRIT] switch_loadable_module.c:882 Error<br>
>>> Loading<br>>>> > module /CORE_SOFTTIMER_MODULE.so<br>>>> > **/CORE_SOFTTIMER_MODULE.so: cannot open shared object file: No such<br>>>> file or<br>>>> > directory**<br>
>>> > 2011-06-16 11:12:46.912905 [WARNING] switch_loadable_module.c:948 Module<br>>>> > path /CORE_PCM_MODULE.so and file CORE_PCM_MODULE to be loaded ...!<br>>>> > 2011-06-16 11:12:46.912941 [CRIT] switch_loadable_module.c:882 Error<br>
>>> Loading<br>>>> > module /CORE_PCM_MODULE.so<br>>>> > **/CORE_PCM_MODULE.so: cannot open shared object file: No such file or<br>>>> > directory**<br>>>> ><br>>>> > I can't find them under /usr/local/freeswitch. where are they?<br>
>>> > -jesse<br>>>> > _______________________________________________<br>>>> > FreeSWITCH-dev mailing list<br>>>> > <a href="mailto:FreeSWITCH-dev@lists.freeswitch.org" target="_blank">FreeSWITCH-dev@lists.freeswitch.org</a><br>
>>> > <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev</a><br>>>> > UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-dev</a><br>
>>> > <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>>>> ><br>>>> ><br>>>><br>>>><br>>>><br>>>> --<br>>>> Anthony Minessale II<br>
>>><br>>>> FreeSWITCH <a href="http://www.freeswitch.org/" target="_blank">http://www.freeswitch.org/</a><br>>>> ClueCon <a href="http://www.cluecon.com/" target="_blank">http://www.cluecon.com/</a><br>
>>> Twitter: <a href="http://twitter.com/FreeSWITCH_wire" target="_blank">http://twitter.com/FreeSWITCH_wire</a><br>
>>><br>>>> AIM: anthm<br>>>> <a href="mailto:MSN%3Aanthony_minessale@hotmail.com" target="_blank">MSN:anthony_minessale@hotmail.com</a><br>>>> GTALK/JABBER/<a href="mailto:PAYPAL%3Aanthony.minessale@gmail.com" target="_blank">PAYPAL:anthony.minessale@gmail.com</a><br>
>>> IRC: <a href="http://irc.freenode.net" target="_blank">irc.freenode.net</a> #freeswitch<br>>>><br>>>> FreeSWITCH Developer Conference<br>>>> <a href="mailto:sip%3A888@conference.freeswitch.org" target="_blank">sip:888@conference.freeswitch.org</a><br>
>>> <a href="mailto:googletalk%3Aconf%2B888@conference.freeswitch.org" target="_blank">googletalk:conf+888@conference.freeswitch.org</a><br>>>> pstn:<a href="tel:%2B19193869900" value="+19193869900" target="_blank">+19193869900</a><br>
>>><br>>>> _______________________________________________<br>
>>> FreeSWITCH-dev mailing list<br>>>> <a href="mailto:FreeSWITCH-dev@lists.freeswitch.org" target="_blank">FreeSWITCH-dev@lists.freeswitch.org</a><br>>>> <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev</a><br>
>>> UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-dev</a><br>>>> <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
>>><br>>><br>>><br>>> _______________________________________________<br>>> FreeSWITCH-dev mailing list<br>>> <a href="mailto:FreeSWITCH-dev@lists.freeswitch.org" target="_blank">FreeSWITCH-dev@lists.freeswitch.org</a><br>
>> <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev</a><br>>> UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-dev</a><br>
>> <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>>><br>>><br></div>
</div></div><br>_______________________________________________<br>
FreeSWITCH-dev mailing list<br>
<a href="mailto:FreeSWITCH-dev@lists.freeswitch.org" target="_blank">FreeSWITCH-dev@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-dev</a><br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<br></blockquote></div><br><div style="padding:0px;margin-left:0px;margin-top:0px;overflow:hidden;word-wrap:break-word;color:black;font-size:10px;text-align:left;line-height:130%">
</div>
</div></div><br>_______________________________________________<br>
FreeSWITCH-dev mailing list<br>
<a href="mailto:FreeSWITCH-dev@lists.freeswitch.org" target="_blank">FreeSWITCH-dev@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-dev</a><br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Join us at ClueCon 2011, Aug 9-11, Chicago<br>
<a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a> 877-7-4ACLUE<br>
<br>
FreeSWITCH-dev mailing list<br>
<a href="mailto:FreeSWITCH-dev@lists.freeswitch.org">FreeSWITCH-dev@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-dev</a><br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<br></blockquote></div><br><div style="visibility: hidden; left: -5000px; position: absolute; z-index: 9999; padding: 0px; margin-left: 0px; margin-top: 0px; overflow: hidden; word-wrap: break-word; color: black; font-size: 10px; text-align: left; line-height: 130%;" id="avg_ls_inline_popup">
</div>