There are some idiosyncrasies in some development platforms (notably Visual Studio 2010 at the time of this writing) that required us to include debug-ready libraries in releases of ASN1C software development kits. These libraries can be found in the lib_debug directories of your installation; they are not included in runtime kits (which include optimized and non-optimized runtime libraries) or in any evaluation kits.

In particular, one issue recurs that looks a little like this:

asn1rt_a.lib(ASN1CSeqOfList.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in MyProject.obj

This error occurs when linking in parts of the C++ STL into an application. These libraries require the parent application to match the link environment for the STL. This means that when linking, it is necessary to match the environment (release or debug) to the proper libraries (release to lib and debug to lib_debug).

Resolving this issue is not the same as making sure that your application will run unhindered on any system, however. The usual distribution caveats apply: SDK libraries—both debug and release mode—are always node-locked. They won't run on systems that aren't licensed. Customers who purchase the unlimited runtime kit will need to link against the libraries in that kit instead of the ones in the SDK to avoid licensing failures.


Published

Category

ASN1C