Не знаю, если эта ошибка была исправлена в CMake.Я использую VC ++ 2010 Express и CMake v2.8.10.1 (который на данный момент является последней версией), и у меня все та же проблема.
Было предоставлено рабочее решение здесь : измените свой исходный код (например, main.cpp / main.c), добавив:
#ifndef NDEBUG
#pragma comment(linker, "/SUBSYSTEM:CONSOLE")
#endif
В качестве альтернативы, вы можете добавить флаг компоновщика "/ SUBSYSTEM: WINDOWS" в сборку режима выпуска.Я использую это определение, которое, кажется, работает:
#ifdef _MSC_VER
# ifdef NDEBUG
# pragma comment(linker, "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
# else
# pragma comment(linker, "/SUBSYSTEM:CONSOLE")
# endif
#endif
Используйте настройку точки входа, чтобы избежать ошибок компоновщика в случае, если вы определили:
int main(int argc, char* argv[]) { ... }