On Jan 19, 2012, at 11:49 AM, John Nairn wrote:

> I am trying to distribute a Cocoa app that launches my own c++ binaries and 
> those binaries link to a dynamic library,

Is there a reason you can’t compile all the code into your app directly? That 
would make things a lot simpler. (I know there are valid reasons for having to 
do it this way, like for example GPL or LGPL libraries.)

> 2. When my c++ code is compiled, it is linked with my installed library which 
> is at /usr/local/lib
> 
> 3. When running on Mac that does not have the installed library, I launch my 
> c++ code using an NSTask and set the DYLD_LIBRARY_PATH environment variable 
> to the path to the binaries folder in my application that has the needed 
> library. 

You can avoid having to set that variable if you change the dylib’s install 
name — that way targets that link against it will remember a more appropriate 
path, like a relative path. You can use “@executable_path” in which case the 
library will be looked for in the same directory as the executable. You can do 
this in Xcode in the build settings for the library, or you can also edit the 
copy of the library you include in your app, via a build script — I don’t know 
exactly what tool is used to edit the install name, but I’m guessing libtool.

—Jens

_______________________________________________

Cocoa-dev mailing list ([email protected])

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to