Chilkat C / C++ Libraries for MAC OS X
- Download and unzip to any directory. The unzipped directory structure is shown here:
- The C/C++ headers are contained in include directory.
- The static and dynamic libs are located in the libStatic and libDyn directories.
- Universal libs may be created by running the makeUniversalLibs.sh script. (Make sure this script has execute permission first "chmod a+x makeUniversalLibs.sh") The contents of this shell script are shown here:
#!/bin/bash -ev cd libStatic libtool -static libchilkat_x86_64.a libchilkat_i386.a -o libchilkat.a cd .. cd libDyn lipo -create libchilkat_x86_64.dylib libchilkat_i386.dylib -output libchilkat.dylib cd ..
- This download is both the trial and full version.
Chilkat libraries are fully functional for 30-day evaluations.
- Release Notes are available on the Chilkat blog.
- See also: Chilkat Reference Documentation
- See also: Chilkat Sample Code
- See also: Chilkat Blog
How to Distribute a dylib with your Application
(This information is general and applies to any dylib on Mac OS X.) On Mac OS X, a dynamic library (dylib) has an "install name". The install name is a path baked into the dynamic library that says where to find the library at runtime. When an application is linked against a dylib, the path is saved in the app's binary so that it can find the dylib at runtime.
The install name of a dylib can be viewed by using otool. For example:
$ otool -D libchilkat.dylib libchilkat.dylib: /usr/local/lib/libchilkat.dylib
This means that unless the DYLD_LIBRARY_PATH environment variable is set to allow the runtime linker find the dylib, the dylib must be placed in the exact location as specified by the install name.
However, the install name of a dylib can be changed by using the install_name_tool utility. The @loader_path keyword can be used to make it relative to an install directory.
Chilkat recommends becoming familiar with the install_name_tool command and it's various options. For example, this command changes the install name of libchilkat.dylib to be relative to the location of the binary using it:
$ install_name_tool -id "@loader_path/dylibs/libchilkat.dylib" libchilkat.dylib