windows下使用cmake+mingw配置makefile(一)
發佈於2016-11-10 14:57:13
1.下載Cmake,並配置環境變量
下載鏈接:https://cmake.org/download/
環境變量略
2. 生成Makefile
1)新建 hello 文件夾,在hello中創建hello.c測試程序
2)在hello中編寫hello.cpp如下:
mkdir hello cd C:\Users\Administrator\Desktop\hello
- #include <iostream>
- using namespace std;
-
- int main(){
- cout << “hello word cmake!!!” << endl;
-
- return 0;
- }
3)在hello文件夾中創建CMakeLists.txt,編輯如下:
- <pre name=“code” class=“cpp”><pre name=“code” class=“cpp”>set(CMAKE_C_COMPILER “gcc”)#設置C編譯器
- set(CMAKE_C_FLAGS “-g -Wall -I C:\mingw-4.81\mingw\include -L C:\mingw-4.81\mingw\lib”)#
-
- set(CMAKE_CXX_COMPILER “g++”)#設置C++編譯器
- set(CMAKE_CXX_FLAGS “-g -Wall -I C:\mingw-4.81\mingw\include -L C:\mingw-4.81\mingw\lib”)
-
- PROJECT (HELLO CXX)
- SET(SRC_LIST hello.cpp)
- ADD_EXECUTABLE(hello ${SRC_LIST})
-
- MESSAGE(STATUS "This is BINARY dir " ${HELLO_BINARY_DIR})
- MESSAGE(STATUS "This is SOURCE dir " ${HELLO_SOURCE_DIR})
上述指令的解釋如下:
PROJECT:指定工程名字爲hello,編程語言爲c++,這個指令也隱式的定義了兩個cmake變量:<projectname>_BINARY_DIR
以及<projectname>_BINARY_DIR,這裏就是HELLO_BINARY_DIR和HELLO_SOURCE_DIR,兩個變量指的都是當前工程的路徑
Set:是用來顯式的定義變量的,我們之前用到的是SET(SRC_LIST main.cpp)如果有多個源文件,也可以定義成SET
(SRC_LIST hello.cpp test1.cpp test2.cpp)定義了這個工程會生成一個文件名爲hello的可執行文件,相關的源文件是
SRC_LIST中定義的源文件列表
MESSAGE:這個指令用於向終端輸出用戶信息,即上面生成的HELLO_BINARY_DIR和HELLO_SOURCE_DIR
4)生成Makefile
- cmd
- cd C:\Users\Administrator\Desktop\hello
- cmake -G "MinGW Makefiles" . # .爲當前目錄, "MinGW Makefiles"爲makefile類型,如果編譯器爲vs的話使用"NMake Makefiles"
5)執行編譯、運行
make
helllo.exe
從上述的cmake的流程中我們可以看到,cmake的使用核心就是使用CMakeLists.txt配置Makefile,而CMakeLists.txt則有一套自己的語法,這個語法
需要在項目的配置中不斷摸索學習。
參考文獻:http://www.cppblog.com/Roger/archive/2011/11/17/160368.html