May 28, 2008

Choosing Correct C++ Library for Linking

Filed under: Linking — Tags: , , , , — admin @ 4:43 am

When linking with a Chilkat C++ library, you must choose the .lib that matches your project’s “code generation” property setting. (With VC++ 6.0, you need to choose the pair of .lib’s that match.)

For example, in VC++ 8.0, these are the Chilkat .lib’s:

ChilkatDbg.lib
ChilkatDbgDll.lib
ChilkatRel.lib
ChilkatRelDll2.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 .dll does not mean you’ll use the .lib with “DLL” in the name. The choice depends on the “code generation” project setting for each build.

I hope you can figure out the difference between “Dbg” and “Rel” without me explicitly stating it…

A Chilkat .lib with a “2″ in the name indicates that it lacks the self-extracting EXE generation features in the Zip library. Chilkat adds this extra choice because the self-extracting EXE feature (in some cases) can cause too much unused baggage to be added to the .exe.

Here are screenshots of the VC++ 6.0, VC++ 7.0, and VC++ 8.0 code generation property pages:

VC++ 8.0
VC++ 8.0 Code Generation

VC++ 7.0
VC++ 7.0 Code Generation

VC++ 6.0
VC++ 6.0 Code Generation

TrackBack URL