stephenju wrote:
> 
> I am trying to add ActiveMQ-CPP to my Mac OS X project. The goal is to
> static link everything into the app bundle.
> 
> I first installed MacPort and built and installed required parts. Then I
> built and installed ActiveMQ-CPP 3.4.0 with --enable-shared=false.
> Finally, I added all necessary static library files (.a) to my project and
> it compiled and linked without any error.
> 
> However, when I examine the resulted binary with otool, it lists all added
> static libs as dylib. For example:
> 
> Load command 13
>           cmd LC_LOAD_DYLIB
>       cmdsize 56
>          name /opt/local/lib/libapr-1.0.dylib (offset 24)
>    time stamp 2 Wed Dec 31 19:00:02 1969
>       current version 5.5.0
> compatibility version 5.0.0
> 
> That library was added to the project as libapr-1.a. Why is it still
> linked as dynamic lib? How do I get it to use static one?
> 
> Thanks.
> 
> BTW. This is on Mac OS 10.6 and Xcode 4.2.
> 

Funny. My post is shown as pending in the account and doesn't seems to be
synced to the mail list.

Anyway. I figure out the problem. All the dependent libraries actually come
with OS X 10.6. Also Xcode has this nasty habit of always using dynamic libs
if it finds one, even when a static .a file is specified. So uninstalling
all MacPort parts and rebuilding ActiveMQ-CPP with --enable-shared=false
created a static lib that references only system libs.

Unfortunately, this is not the end of my problem. The static lib links OK. I
tested with some sample code in my project and it also works. However, when
building with Xcode Release mode, it ends with linker error complaining bad
codegen and wrong offsets. I have to turn code optimization completely off
(-O0) to make it link.

This is beyond frustrating...

--
View this message in context: 
http://activemq.2283324.n4.nabble.com/Static-link-ActiveMQ-CPP-on-Mac-OS-X-tp3986182p3997445.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to