Cmake和VS分别是用来干什么的
1个回答
2016-07-04
展开全部
cmakevsqmakeqmake是为Qt量身打造的,使用起来非常方便cmake使用上不如qmake简单直接,但复杂换来的是强大的功能内置的out-ofsource构建。(目前QtCreator为qmake也默认启用了该功能,称:shadowbuild)为各种平台和场景提供条件编译可处理多个可执行文件情况,和很好配合QtTest工作如何选择?UsingCMaketoBuildQtProjects一文中说:对简单的Qt工程,采用qmake对复杂度超过qmake处理能力的,采用cmake尽管如此,如果简单Qt的工程都不知道怎么用cmake构建,复杂的工程,就更不知道如何使用cmake了。还是从简单的学起吧简单的Qt程序#include#includeintmain(intargc,char**argv){QCoreApplicationapp(argc,argv);qDebug()-Ocoff-i-o")endif(MINGW)SET(example_SRCSmain.cppmainwindow.cppwidget.cppres/main.rc)SET(example_MOC_SRCSmainwindow.hwidget.h)QT4_WRAP_CPP(example_MOCS${example_MOC_SRCS})QT4_ADD_RESOURCES(example_RCC_SRCSmain.qrc)SET(example_SRCS${example_SRCS}${example_MOCS}${example_RCC_SRCS})ADD_EXECUTABLE(exampleWIN32main.cppmainwindow.cpp${example_SRCS})TARGET_LINK_LIBRARIES(example${QT_LIBRARIES})对Qt的资源文件,使用QT4_ADD_RESOURCES来调用rcc进行预处理对Windows资源文件,直接和源文件一样,添加到列表中即可。只是:MinGW下仅仅这么做还不行,上面的MinGW块用来修复这个问题Debug与Releaseqmake使用qmake时,可以在pro文件内分别为两种模式设置不同的选项。使用时,可以直接makerelease或makedebug来编译不同的版本cmake不同于qmake,由于cmake采用out-of-source方式。故:建立debugrelease两目录,分别在其中执行cmake-DCMAKE_BUILD_TYPE=Debug(或Release)需要编译不同版本时进入不同目录执行make对生成msvc工程的情况,CMAKE_BUILD_TYPE不起作用。生成工程后使用IDE自带的模式选择。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询