I would agree. I don't know how many subtle runtime bugs I have had to
figure out because our project mixed debug and release runtimes on MSVC.
DON'T do it unless you REALLY have to. But even then I would never
actually deploy that into production.
YMMV
--
Mike Jackson [[email protected]]
[email protected] wrote:
----- On Nov 7, 2016, at 1:37 AM, Stephan Menzel
<[email protected]> wrote:
Hello everyone,
I'm looking for a way to force Debug configurations in generated
MSVC solutions to use the Release runtime instead of the default
"Debug". e.g. /MD rather than /MDd.
My use case is an ever recurring problem of creating libraries that
are linked in plug-in fashion against Release only applications. I
want for my Debug configuration to have debug info and no
optimization but still use the release runtime so I can link them.
I tried replacing /MDd with /MD in CMAKE_CXX_FLAGS_DEBUG. This
yielded objects built with /MD alright but failed to link into an
executable with stuff like that:
error LNK2038: mismatch detected for 'RuntimeLibrary': value
'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in Test.obj
From what I gather all the obj are actually compiled for Release
runtime without optimization and Debug info just like I need it. But
then the main obj is built and linked in Debug mode, causing the
executable to not be created.
Is there a way to solve this? Like a generic CMake executable flag
or something that I can use to force the other runtime?
Please note that using RelWithDebInfo and turning off optimization
is not exactly what I need as I still want that mode much the way it is.
If you are going to use /MD instead of /MDd, then you probably also need
to remove the _DEBUG preprocessor flag.
IIRC, I've seen cases where defining _DEBUG includes symbols only
defined by the debug runtimes.
Clint
--
Powered by www.kitware.com
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Kitware offers various services to support the CMake community. For more
information on each offering, please visit:
CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake