2015-04-12 105 views
-1

我不明白CMake的所有,我有这样的:CMake的不编译什么

cmake_minimum_required(VERSION 3.2) 
project(cmake_test) 

add_executable(
    cmake_test 
    source/main.cpp 
) 

INSTALL(TARGETS cmake_test DESTINATION ${cmake_test_SOURCE_DIR}/bin) 

一切配置正常,但没有什么是bin文件夹里,为什么没有产生一个东西吗?我必须打开VS的每一次打造吗?那么有什么感觉......?

我想有这样的文件夹结构:

[root folder] 
    - build 
     # CMakeCache and so on 

    - include 
     - project1 
     - project2 

    - lib 
     - Debug 
      project1.lib 
      project1.dll 
      project2.lib 
      project2.dll 

     - Release 
      project1.lib 
      project1.dll 
      project2.lib 
      project2.dll 

    - source 
     - project1 
     - project2 

    - sample 
     - bin 
      sample1.exe 
      sample2.exe 

     - src 
      - sample1 
      - sample2 

    CMakeLists.txt 

有没有办法简单和易于使用CMake的产生呢?
我必须在多个平台上发布我的图书馆。

+0

答案是肯定的,建议实际阅读文档,投票结果为“太宽泛”。 – DevSolar

+0

文档没有解释为什么它不能编译。本教程是说我应该在文件夹中找到我的.exe文件,但它根本不存在 – Antony

+0

您似乎误解的基本概念是CMake生成例如一个MSVC解决方案(无论是哪种版本,无论你指定什么平台),NMake或Unix makefile,一个KDevelop项目或其他什么,*然后你再用它来构建项目*。如果你所看到的只是一个特定的构建环境和一个可执行文件,那么这看起来可能没有多大改进,但是一旦你的项目增长了,CMake就会越来越有意义。 [我确实为它构建了一个框架配置](http://jaws.rootdirectory.de),你可能想看看这个想法。 – DevSolar

回答

0

你错过了这一点。 CMake是一个构建文件生成器。如果你不想打开VS来构建,那么抓住忍者(或者抖动 GNU make)并使用该生成器来代替。

CMake的要点是你可以在你喜欢的IDE(例如Visual Studio)中编写程序,而其他下载你的项目的人不需要它;他们可以使用任何其他目标IDE /构建系统,无论它们是在Windows,Linux还是OSX上。

+0

如果您希望VS执行构建,但不想打开构建IDE,请使用NMake Makefiles生成器,并在命令行中调用'nmake'。 – DevSolar

+0

@DevSolar虽然忍者的速度有99%的可能。增量构建VS可能会很慢;不确定NMake是否是相同的方式。 – refi64

+0

我想指出的是,您可以将VS和CMake结合起来进行命令行构建,而无需任何其他要求。不知道Windows上的相对生成速度。 – DevSolar