1 qtcreator使用cmake编译项目,去掉命令行窗口

在Visula Studio + CMake构建项目,通常默认是带有命令行窗口,通过设置如下命令,去掉命令行窗口。

cmake命令1:

add_executable(${PROJECT_NAME}
  WIN32)

cmake命令2:

set_property(TARGET ${PROJECT_NAME} PROPERTY WIN32_EXECUTABLE true)

在qtcreator构建cmake项目时,通常都是没有命令行窗口,但是,最近在使用qtcreator构建VTK相关的项目时,出现了蛋疼的一幕,编译生成的程序,一定会有命令行窗口,这时,如果设置上述两条cmake命令中的一条,都会报错 MSVCRTD.lib(exe_winmain.obj) : error LNK2019: unresolved external symbol _WinMain 非常奇怪,怎么整都没有用。

stack overflow网页下,有人说使用

CMAKE_POLICY(SET CMP0020 NEW)

命令后,再使用上述两条命令中的任意一条就可以解决,经实验后,确实如此。