- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Visual Studio 2010, Intel Compiler version 12.1.4.122.
This problem occurs in debug builds.
If /debug:parallel is set, pdbxinst.lib is included. It has a defaultlib directive pointing to libcpmt. If any module compiled with _DEBUG set uses libcpmt, a LNK2038 error results for _ITERATOR_DEBUG_LEVEL.
The workaround of /NODEFAULTLIB:libcpmt.lib when linkingseems to work, but has unknown side effects.
Either a debug version of pdbxinst.lib that links to libcpmtd.lib should be supplied and used in this case, or the dependency on libcpmt needs removing.
Orin
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Orin,
What's the reason for building with /debug:parallel? This option is for creating parallel debug checks used by the Intel Parallel Debugger Extension to detect data sharing events in OpenMP* parallelized code.
Same as: http://software.intel.com/en-us/forums/showthread.php?t=105411
Regards, Hubert.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
My code is using OpenMP. I have /Qopenmp set too. I was chasing a memory overwrite problem and trying to make sure it wasn't hapenning in my code.
Orin.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
As said, /debug:parallel is for data sharing detection of multithreaded OpenMP code only. So even if you are debugging OpenMP you don't necessarily need /debug:parallel. For looking after memory problems the Intel Parallel Inspector may help. I doesn't look like you want to detect data races here (the Parallel Inspector would also be a good choice to detect them).
Of course we will takeyour reported issue seriously and try to reproduce this, but in your case I think you can safelyremove option /debug:parallel for now.
Regards, Hubert.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I've already run Parallel Inspector. Obviously, I wouldn't ship a product with /debug:parallel enabled and release builds don't produce the link error anyway.
I do have much data sharing going on and OpenMP is perhaps not the best solution, but it's the hand I've been dealt. It's tedious, but /debug:parallel does allow me to check whether the events it shows are real problems - ie. is the data protected by a mutex etc..
Orin.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page