2015-04-12 67 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