cmake和visual studio

时间:2010-03-13 06:17:06

标签: cmake

gcc 4.4.2 / Visual Studio C ++ 2008

我一直在linux上使用cmake,没有任何问题。

现在我已经通过应用程序移植到Windows上运行。

我使用cmake -G“Visual Studio 9 2008 ../ src”

生成了解决方案文件

但是,我知道cmake只创建一个Makefile,编译器使用它来构建你的应用程序。

我在Visual Studio中打开我的解决方案,按F7键进行编译。

我想知道它实际上是否使用了由cmake生成的Makefile?或者它只是像任何正常的视觉工作室程序一样编译应用程序?

非常感谢任何建议,

3 个答案:

答案 0 :(得分:18)

Cmake生成Visual Studio解决方案和项目文件。

该解决方案至少包含三个项目:

  • ALL_BUILD
  • YourProject
  • ZERO_CHECK

设置解决方案,以便在构建项目时(通过构建解决方案或构建项目)构建“YourProject”,然后构建ZERO_CHECK,从而导致cmake运行并检查是否有任何更改。如果有任何更改,将重新生成解决方案和项目文件,Visual Studio将询问您是否要重新加载。

程序的编译由Visual Studio完成,如果您手动设置它,但Visual Studio将运行cmake,从而检查是否有任何更改,并且应重新生成项目文件。

答案 1 :(得分:10)

CMake生成“真正的”.vcproj文件,因此Visual Studio将像任何普通的Visual Studio项目一样构建您的项目。没有涉及makefile。

答案 2 :(得分:0)

从CMake网站上:

  

CMake用于控制软件的编译过程,使用简单   平台和编译器独立的配置文件,并生成   可以在编译器中使用的本机makefile和工作空间   您选择的环境。

关键是,它从与编译器无关的配置文件(CMakeLists.txt个文件)中生成本地个makefile和工作区

因此,CMake的第一步是从CMakeLists.txt生成 native 构建文件,该文件在Linux上Makefiles,在Windows上Visual Studio projects/solution。然后,您就可以像本地构建文件是从头开始创建一样进行编译/链接。

编辑CMakeLists.txt时,这意味着必须将更改传播到本机构建方案。这是通过在Visual Studio解决方案中的ZERO_CHECK项目中再次显式运行CMake生成器或隐式运行CMake生成器来完成的。