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?或者它只是像任何正常的视觉工作室程序一样编译应用程序?
非常感谢任何建议,
答案 0 :(得分:18)
Cmake生成Visual Studio解决方案和项目文件。
该解决方案至少包含三个项目:
设置解决方案,以便在构建项目时(通过构建解决方案或构建项目)构建“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生成器来完成的。