Making a single library in PJSIP (iPhone)

RW
Rob Wilkes
Fri, Oct 1, 2010 9:09 PM

Hi,
the current PJSIP iphone build process creates a large set of .a files. Is
it possible, instead, just to create a single .a easily?

I tried copying all the generated libs to a folder then used libtool *.a
-static -o libpjsip.a  . While it generates the .a, when I link it to an
app, I get all sorts of unresolved symbols. OTOH, when I link all the
individual libraries, it works fine (I even tried ar -x *.a then libtool *.o
-static -o libpjsip.a).

(I am using the right libtool - inside the /Developer/etc. directory, not
/usr/bin)

Any thoughts ?

Hi, the current PJSIP iphone build process creates a large set of .a files. Is it possible, instead, just to create a single .a easily? I tried copying all the generated libs to a folder then used libtool *.a -static -o libpjsip.a . While it generates the .a, when I link it to an app, I get all sorts of unresolved symbols. OTOH, when I link all the individual libraries, it works fine (I even tried ar -x *.a then libtool *.o -static -o libpjsip.a). (I am using the right libtool - inside the /Developer/etc. directory, not /usr/bin) Any thoughts ?
AO
Alejandro Orellana
Fri, Oct 1, 2010 9:13 PM

Rob
this does the trick for me (assuming your  are in pjsip src directory)

libtool -static -o ./libpjsip.a find . -name "*arm-apple*.a"

Regards
On Oct 1, 2010, at 5:09 PM, Rob Wilkes wrote:

Hi,
the current PJSIP iphone build process creates a large set of .a files. Is it possible, instead, just to create a single .a easily?

I tried copying all the generated libs to a folder then used libtool *.a -static -o libpjsip.a  . While it generates the .a, when I link it to an app, I get all sorts of unresolved symbols. OTOH, when I link all the individual libraries, it works fine (I even tried ar -x *.a then libtool *.o -static -o libpjsip.a).

(I am using the right libtool - inside the /Developer/etc. directory, not /usr/bin)

Any thoughts ?


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org


Alejandro Orellana
Savant Systems, LLC
770 Main Street
Osterville, Ma. 02655
(508) 683-2547 (W)
(508) 683-2647 (F)
Alejandro.Orellana@savantav.com

Statement of Confidentiality
The contents of this e-mail message and any attachments are confidential and are intended solely for the addressee. The information may also be legally privileged. This transmission is sent in trust, and the sole purpose of delivery to the intended recipient. If you have received this transmission in error, any use, reproduction or dissemination of this transmission is strictly prohibited. If you are not the intended recipient, please immediately notify the sender by reply e-mail or at 508.683-2500 and delete this message and its attachments, if any.

Rob this does the trick for me (assuming your are in pjsip src directory) libtool -static -o ./libpjsip.a `find . -name "*arm-apple*.a"` Regards On Oct 1, 2010, at 5:09 PM, Rob Wilkes wrote: > Hi, > the current PJSIP iphone build process creates a large set of .a files. Is it possible, instead, just to create a single .a easily? > > I tried copying all the generated libs to a folder then used libtool *.a -static -o libpjsip.a . While it generates the .a, when I link it to an app, I get all sorts of unresolved symbols. OTOH, when I link all the individual libraries, it works fine (I even tried ar -x *.a then libtool *.o -static -o libpjsip.a). > > (I am using the right libtool - inside the /Developer/etc. directory, not /usr/bin) > > Any thoughts ? > > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip@lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org ------ Alejandro Orellana Savant Systems, LLC 770 Main Street Osterville, Ma. 02655 (508) 683-2547 (W) (508) 683-2647 (F) Alejandro.Orellana@savantav.com Statement of Confidentiality The contents of this e-mail message and any attachments are confidential and are intended solely for the addressee. The information may also be legally privileged. This transmission is sent in trust, and the sole purpose of delivery to the intended recipient. If you have received this transmission in error, any use, reproduction or dissemination of this transmission is strictly prohibited. If you are not the intended recipient, please immediately notify the sender by reply e-mail or at 508.683-2500 and delete this message and its attachments, if any.
BP
Benny Prijono
Sat, Oct 2, 2010 3:26 AM

Hi,

The attached script should do it (at least it works on Linux. You
should check the various ar and ranlib commands in the script if you
run it on Macs).

Ideally we should do this in "make install", which already puts all
header/lib files into installation directory tree (the --prefix in
configure cmd), so the next step is to combine them into a single lib
and fix the system/external library dependency and put it in pkgconfig
information. Unfortunately I haven't had time to do it.

Best regards,
 Benny

On Sat, Oct 2, 2010 at 4:09 AM, Rob Wilkes wilkrob@gmail.com wrote:

Hi,
the current PJSIP iphone build process creates a large set of .a files. Is
it possible, instead, just to create a single .a easily?
I tried copying all the generated libs to a folder then used libtool *.a
-static -o libpjsip.a  . While it generates the .a, when I link it to an
app, I get all sorts of unresolved symbols. OTOH, when I link all the
individual libraries, it works fine (I even tried ar -x *.a then libtool *.o
-static -o libpjsip.a).
(I am using the right libtool - inside the /Developer/etc. directory, not
/usr/bin)
Any thoughts ?


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

Hi, The attached script should do it (at least it works on Linux. You should check the various ar and ranlib commands in the script if you run it on Macs). Ideally we should do this in "make install", which already puts all header/lib files into installation directory tree (the --prefix in configure cmd), so the next step is to combine them into a single lib and fix the system/external library dependency and put it in pkgconfig information. Unfortunately I haven't had time to do it. Best regards,  Benny On Sat, Oct 2, 2010 at 4:09 AM, Rob Wilkes <wilkrob@gmail.com> wrote: > Hi, > the current PJSIP iphone build process creates a large set of .a files. Is > it possible, instead, just to create a single .a easily? > I tried copying all the generated libs to a folder then used libtool *.a > -static -o libpjsip.a  . While it generates the .a, when I link it to an > app, I get all sorts of unresolved symbols. OTOH, when I link all the > individual libraries, it works fine (I even tried ar -x *.a then libtool *.o > -static -o libpjsip.a). > (I am using the right libtool - inside the /Developer/etc. directory, not > /usr/bin) > Any thoughts ? > > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip@lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > >
RW
Rob Wilkes
Sun, Oct 3, 2010 1:03 AM

Thanks Benny/Alejandro,
as it turned out, I was getting an error because I was trying to use libtool
to combine a .a generated by xcode and the one generated by PJSIP. It seems
the Xcode one is some sort of a 'fat file' library that can't be combined
with the pjsip one. Anyhow, I solved it by keeping it as two libaries - one
for PJSIP (using libtool -static) and one for the Xcode library (which is a
wrapper on top of PJ)

Benny, I haven't tried your script yet, but I am doing something pretty
similar to what Alejandro suggested above - a single line to just group all
the .as to a single .a

best

On Fri, Oct 1, 2010 at 11:26 PM, Benny Prijono bennylp@teluu.com wrote:

Hi,

The attached script should do it (at least it works on Linux. You
should check the various ar and ranlib commands in the script if you
run it on Macs).

Ideally we should do this in "make install", which already puts all
header/lib files into installation directory tree (the --prefix in
configure cmd), so the next step is to combine them into a single lib
and fix the system/external library dependency and put it in pkgconfig
information. Unfortunately I haven't had time to do it.

Best regards,
Benny

On Sat, Oct 2, 2010 at 4:09 AM, Rob Wilkes wilkrob@gmail.com wrote:

Hi,
the current PJSIP iphone build process creates a large set of .a files.

Is

it possible, instead, just to create a single .a easily?
I tried copying all the generated libs to a folder then used libtool *.a
-static -o libpjsip.a  . While it generates the .a, when I link it to an
app, I get all sorts of unresolved symbols. OTOH, when I link all the
individual libraries, it works fine (I even tried ar -x *.a then libtool

*.o

-static -o libpjsip.a).
(I am using the right libtool - inside the /Developer/etc. directory, not
/usr/bin)
Any thoughts ?


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

Thanks Benny/Alejandro, as it turned out, I was getting an error because I was trying to use libtool to combine a .a generated by xcode and the one generated by PJSIP. It seems the Xcode one is some sort of a 'fat file' library that can't be combined with the pjsip one. Anyhow, I solved it by keeping it as two libaries - one for PJSIP (using libtool -static) and one for the Xcode library (which is a wrapper on top of PJ) Benny, I haven't tried your script yet, but I am doing something pretty similar to what Alejandro suggested above - a single line to just group all the .as to a single .a best On Fri, Oct 1, 2010 at 11:26 PM, Benny Prijono <bennylp@teluu.com> wrote: > Hi, > > The attached script should do it (at least it works on Linux. You > should check the various ar and ranlib commands in the script if you > run it on Macs). > > Ideally we should do this in "make install", which already puts all > header/lib files into installation directory tree (the --prefix in > configure cmd), so the next step is to combine them into a single lib > and fix the system/external library dependency and put it in pkgconfig > information. Unfortunately I haven't had time to do it. > > Best regards, > Benny > > > On Sat, Oct 2, 2010 at 4:09 AM, Rob Wilkes <wilkrob@gmail.com> wrote: > > Hi, > > the current PJSIP iphone build process creates a large set of .a files. > Is > > it possible, instead, just to create a single .a easily? > > I tried copying all the generated libs to a folder then used libtool *.a > > -static -o libpjsip.a . While it generates the .a, when I link it to an > > app, I get all sorts of unresolved symbols. OTOH, when I link all the > > individual libraries, it works fine (I even tried ar -x *.a then libtool > *.o > > -static -o libpjsip.a). > > (I am using the right libtool - inside the /Developer/etc. directory, not > > /usr/bin) > > Any thoughts ? > > > > > > _______________________________________________ > > Visit our blog: http://blog.pjsip.org > > > > pjsip mailing list > > pjsip@lists.pjsip.org > > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > > > > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip@lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > >