windows+CMake+mingw 搭建c/c++開發(fā)環(huán)境

本文教你如何在windows環(huán)境下使用CMake和mingw搭建同linux開發(fā)一樣體驗的c/c++開發(fā)環(huán)境

CMake 安裝

CMake 下載

官方下載地址: https://cmake.org/download/

cmake下載頁面

選擇自己系統(tǒng)(Platform)對應(yīng)的版本并下載
這里我們選擇Windows win64-x64 Installer: Installer tool has changed. Uninstall CMake 3.4 or lower first!

CMake 下載完成

CMake 安裝

安裝時根據(jù)自己系統(tǒng)的安全設(shè)置态贤,可能會出現(xiàn)如下對話框会傲,不用擔(dān)心,直接點擊 "運行(R)"

安裝時安全警告

CMake Steup

License

必須選擇同意抒和,否則不能進入下一步

安裝選項
  • 是否添加環(huán)境變量,這里我們選擇 "Add CMake to the system PATH for all users"
  • 是否創(chuàng)建桌面快捷圖標(biāo)管怠,根據(jù)自身情況而定袭祟,這個只是創(chuàng)建桌面圖標(biāo)使用方便,并不會對以后的使用造成實質(zhì)上的影響

安裝路徑

這里選擇自己習(xí)慣存放程序的路徑捂贿,我們這里采取默認值


安裝路徑

安裝最后確認

經(jīng)過前面的操作終于把需要配置的都配置了纠修,下面該程序自己干活了


安裝最后確認

進入安裝

真正開始安裝的階段,這一階段比較耗時厂僧,完全取決于電腦自身的配置高低扣草,系統(tǒng)主要是解壓文件和寫磁盤


安裝中

安裝完成

共享你,終于將CMake安裝完成了


安裝完成頁面

確認CMake安裝

驗證CMake是否成功安裝,可以調(diào)出CMD窗口德召,輸入cmake白魂,瞧瞧系統(tǒng)會給你說什么,如果出現(xiàn)如下窗口上岗,那么恭喜你沒有任何問題福荸。

CMake安裝好

那么萬一出現(xiàn)的是如下內(nèi)容呢
CMake沒安裝好

我們一般有如下處理步驟和處理方法:

    1. 確認是新調(diào)出CMD窗口再進行的操作
    1. 我們可以手動修改系統(tǒng)的環(huán)境變量指定CMake的bin目錄位置


      系統(tǒng)環(huán)境變量 Path

      確認如圖所示內(nèi)容在Path中配置,如果沒有可以手動輸入并確定

    1. 待2操作完成后可以再驗證肴掷,如果解決那么恭喜敬锐,如果問題仍存在,那么需要重啟系統(tǒng)(一般都能解決了呆瞻,除非比較低的系統(tǒng)版本可能需要重啟)

mingw

mingw 下載

這里給出64系統(tǒng)使用的mingw, https://sourceforge.net/projects/mingw-w64/

mingw下載完成

這里其實是下載的一個安裝器台夺,具體的安裝是通過運行這個安裝器來引導(dǎo)安裝的

mingw 安裝

開始運行安裝器

mingw 安裝選項

安裝選項

這里需要做出對應(yīng)的選擇,當(dāng)然完全默認沒有任何問題痴脾,我們這里采用默認颤介,繼續(xù)安裝

mingw 安裝位置

安裝位置選擇

這里有坑,我們先入坑, 繼續(xù)安裝

mingw 安裝中

安裝中

安裝器需要從網(wǎng)上下載所需要的文件赞赖,這一步耗時較長

mingw 安裝完成

安裝完成

環(huán)境變量設(shè)置

同CMake的一樣滚朵,mingw安裝完后自動了設(shè)置環(huán)境變量,你也可以通過運行其安裝目錄下的mingw-w64.bat來進入運行環(huán)境

mingw-w64.bat

驗證mingw環(huán)境是否設(shè)置好前域,同樣新調(diào)出CMD窗口辕近,輸入gcc命令,出入如下信息則表示安裝沒有問題匿垄,否則請參照CMake配置環(huán)境變量的方式來解決移宅。
gcc 命令

CMake+mingw 實例

我們安裝完環(huán)境后來個實例運行下吧

  • 編寫源碼文件
    來個宇宙最著名的程序吧
#include <stdio.h>

int main()
{
    printf("hello\n");
    
    return 0;
}
  • 編寫CMake文件
cmake_minimum_required(VERSION 3.0)
project(Hello)
set(SOURCE main.cpp)
add_executable(${PROJECT_NAME} ${SOURCE})

  • 生成Make file
mkdir build
cd build
cmake -G"Unix Makefiles" ../

很不幸,這一步會出問題

CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
See also "D:/tmp/build/CMakeFiles/CMakeOutput.log".

意思就是不能生成Unix Makefiles椿疗,這是缺少make程序造成的漏峰,
解決方法就是找到mingw安裝目錄下mingw32-make.exe拷貝一份并重命名為make.exe

make

再運行cmake -G"Unix Makefiles" ../

$ cmake -G"Unix Makefiles" ../
-- The C compiler identification is GNU 7.2.0
-- The CXX compiler identification is GNU 7.2.0
-- Check for working C compiler: C:/Program Files (x86)/mingw-w64/i686-7.2.0-posix-dwarf-rt_v5-rev1/mingw32/bin/gcc.exe
-- Check for working C compiler: C:/Program Files (x86)/mingw-w64/i686-7.2.0-posix-dwarf-rt_v5-rev1/mingw32/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/Program Files (x86)/mingw-w64/i686-7.2.0-posix-dwarf-rt_v5-rev1/mingw32/bin/c++.exe
-- Check for working CXX compiler: C:/Program Files (x86)/mingw-w64/i686-7.2.0-posix-dwarf-rt_v5-rev1/mingw32/bin/c++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: D:/tmp/build

這樣就對了

  • 編譯
make

什么,又有問題

$ make
/usr/bin/sh: -c: line 0: syntax error near unexpected token `('
/usr/bin/sh: -c: line 0: `C:/Program Files (x86)/mingw-w64/i686-7.2.0-posix-dwarf-rt_v5-rev1/mingw32/bin/make -f CMakeFiles/Makefile2 all'
make: *** [Makefile:84: all] Error 1

還記得前面我們安裝mingw時說的坑嗎变丧,現(xiàn)在我們需要填坑了芽狗,文件就是萬惡的C:/Program Files (x86),這也好辦痒蓬,將mingw-w64文件夾復(fù)制到一個正常的目錄吧童擎,比如直接C:/mingw-w64,然后需要修改環(huán)境變量

修改mingw環(huán)境變量

$ make
Scanning dependencies of target Hello
[ 50%] Building CXX object CMakeFiles/Hello.dir/main.cpp.obj
[100%] Linking CXX executable Hello.exe
[100%] Built target Hello

  • 運行
$ ./Hello.exe
hello

好了攻晒,終于成功了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末顾复,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子鲁捏,更是在濱河造成了極大的恐慌芯砸,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異假丧,居然都是意外死亡双揪,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門包帚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來渔期,“玉大人,你說我怎么就攤上這事渴邦》杼耍” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵谋梭,是天一觀的道長信峻。 經(jīng)常有香客問我,道長瓮床,這世上最難降的妖魔是什么盹舞? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮纤垂,結(jié)果婚禮上矾策,老公的妹妹穿的比我還像新娘。我一直安慰自己峭沦,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布逃糟。 她就那樣靜靜地躺著吼鱼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绰咽。 梳的紋絲不亂的頭發(fā)上菇肃,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天,我揣著相機與錄音取募,去河邊找鬼琐谤。 笑死,一個胖子當(dāng)著我的面吹牛玩敏,可吹牛的內(nèi)容都是我干的斗忌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼旺聚,長吁一口氣:“原來是場噩夢啊……” “哼织阳!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起砰粹,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤唧躲,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弄痹,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡饭入,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了肛真。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谐丢。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖毁欣,靈堂內(nèi)的尸體忽然破棺而出庇谆,到底是詐尸還是另有隱情,我是刑警寧澤凭疮,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布饭耳,位于F島的核電站,受9級特大地震影響执解,放射性物質(zhì)發(fā)生泄漏寞肖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一衰腌、第九天 我趴在偏房一處隱蔽的房頂上張望新蟆。 院中可真熱鬧,春花似錦右蕊、人聲如沸琼稻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽帕翻。三九已至,卻和暖如春萝风,著一層夾襖步出監(jiān)牢的瞬間嘀掸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工规惰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留睬塌,地道東北人。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓歇万,卻偏偏與公主長得像揩晴,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子堕花,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容