iOS C/C++ Static Library Sizes

There is often alarm at the size of the Chilkat static libraries (.a) for iOS. This should not be of too much concern, because after building your app in Release mode, your app’s executable will NOT grow by the size of the static library. It will only grow by a very small fraction of the total size of the .a […]

Linking “C” Programs with the Chilkat C/C++ Libs

The Chilkat C/C++ libs are (internally) written in C++.  Therefore, when linking a “C” program with the Chilkat libs, the C++ runtime libs must be included.  This is true regardless of the operating system, whether it be Windows, MAC OS X, IOS, Linux, etc.    Different build environments will have different ways of accomplishing the task.  For example, with XCode (on […]

IOS / Mac OS X Link Problems involving symbols such as __ZTVN10__cxxabiv121__vmi_class_type_infoE

If linking produces undefined symbols involving the following: __ZTVN10__cxxabiv121__vmi_class_type_infoE __Znwm __ZdlPv ___gxx_personality_sj0 ___cxa_begin_catch __ZTVN10__cxxabiv120__si_class_type_infoE ___cxa_end_catch __ZdaPv __ZTVN10__cxxabiv117__class_type_infoE etc. It means you’re NOT linking with the C++ runtime libs.  To link with the C++ runtime libs, include an empty source file having a file extension of “.cpp”.   For more information, see the IOS Objective-C linking notes

Undefined symbol: _res_9_query

Question: I had some IMAP code working with Chilkat iOS 9.2.1 version. Tried upgrading to 9.3.0 (wanted to use the new attachments functionality) and got the following error: Undefined symbols for architecture i386: “_res_9_query”, referenced from: ChilkatResolve::mxLookup(char const*, ScoredStrings&, LogBase&, bool) in libchilkatIos.a(ChilkatResolve.o) ChilkatResolve::dkimLookup(char const*, StringBuffer&, LogBase&, bool) in libchilkatIos.a(ChilkatResolve.o) ChilkatResolve::bestMxLookup(char const*, StringBuffer&, LogBase&, bool) in libchilkatIos.a(ChilkatResolve.o) ld: symbol(s) not […]

XCode Linker will automatically choose dylib over static libs

A note about building (linking) a project in XCode: If a static lib’s corresponding dylib is in a library search path during linking, Xcode will link to the dylib instead of the static lib. The solution is to move the dylib somewhere else. (from a Chilkat customer) “I created chilkat-9.2.1-macosx-10.5/lib/dylib and moved the dylibs into it.  Since my library search […]

Common IOS undefined symbols error

Link Error: Undefined symbols for architecture i386: “operator new(unsigned long)”, referenced from: -[CkoMailMan init] in libchilkatIos.a(CkoMailMan.o) “operator delete(void*)”, referenced from: -[CkoMailMan init] in libchilkatIos.a(CkoMailMan.o) Solution: The Chilkat internals are written in C++. Therefore, your Objective-C application will need to link against the C++ runtime libraries. The easiest way to do it is to include an empty source file with the […]

VC++ Link problem: fatal error C1047, “Chilkat*.lib’ was created with an older compiler than other objects; rebuild old objects and libraries”

Regarding the following VC++ link problem: “fatal error C1047: The object or library file ‘c:\Chilkat\libs\x64\ChilkatRel_x64.lib’ was created with an older compiler than other objects; rebuild old objects and libraries” This can be resolved by building without the /LTCG flag turned on. Unfortunately, it is not possible to use the /LTCG flag if you are using the Chilkat libraries. Compiling and […]

Chilkat C++ Libs – Link and Maintain Single EXE?

Question: I am developing a single EXE in C++ that doesn’t make use of any external libraries and including MFC. Can I add your zip libaries to my application and still maintain the application as a single EXE? Answer: Yes, the Chilkat C++ libs may be linked directly into your application.  This results in a single EXE containing the Chilkat library […]

Choosing Correct C++ Library for Linking

When linking with a Chilkat C++ library, you must choose the .lib that matches your project’s “code generation” property setting. For example, in VC++ 8.0, these are the Chilkat .lib’s: ChilkatDbg.lib ChilkatDbgDll.lib ChilkatRel.lib ChilkatRelDll.lib If “Dll” is in the library name, it means that you are *not* statically linking with the C runtime libs. Just because your project produces a […]