天天看點

Windows系統下GCC配置, MinGW-W64 GCC安裝與配置,Dev-C++、CodeBlocksGCC各發行版簡介:編譯器或IDE下載下傳位址:MinGW-W64 GCC安裝與配置配置環境變量(以Win7為例,Win10類似):Dev-C++、CodeBlocks環境變量添加編譯第一個C/C++源代碼檔案GCC、make指令及Makefile簡單介紹

在Windows系統下,除微軟的VS外,大多使用GCC作為編譯,現在的GCC并不是隻能在Linux系統上才能使用的編譯器,早已移值到了Windows系統下了。

由于VS的龐大,很多人員隻是學習一下C/C++語言,龐大的VS功能大多是用不到的,這時在Windows系統下GCC就是一個不錯的選擇。(需要學習Windows下應用程式開發的建議還是使用VS做為開發工具)

現在的GCC其實是一個套件,可以編譯C語言程式,也可以編譯C++語言程式

編譯C語言可以使用:gcc 指令

編譯C++語言可以用:g++ 指令

Windows系統下的IDE內建GCC編譯器有:Dev-C++(Dev CPP)、CodeBlocks等常見的IDE裡。

Dev-C++(Dev CPP)、CodeBlocks 所使用的GCC

Dev-C++ v5.11 gcc version 4.9.2 (tdm64-1)
CodeBlocks v17.12 gcc version 5.1.0 (tdm-1)

GCC各發行版簡介:

MinGW、MinGW-w64、TDM-GCC編譯之間的差別

MinGW 隻有32位版---------------不推薦使用
MinGW-w64 提供 32位和64位--------更新最快,基本上gcc更近後幾周内就會跟進
TDM-GCC 提供32位和64位---------更新速度也不怎麼樣

編譯器或IDE下載下傳位址:

MinGW:http://www.mingw.org

MinGW-w64:http://www.mingw-w64.org

TDM-GCC:http://tdm-gcc.tdragon.net

Dev-C++ v5.11:https://sourceforge.net/projects/orwelldevcpp

CodeBlocks v17.12:http://www.codeblocks.org

MinGW-W64 GCC安裝與配置

MinGW-w64下載下傳位址:https://sourceforge.net/projects/mingw-w64/files/

選擇合适的版本

i686純32位版供32位win系統使用

x86_64是64位系統用的版本

seh結尾是純64位編譯

sjlj結尾是32 64兩種編譯,需加-m32或-m64參數

posix通常用于跨平台,比win32相容性好一些

 我這裡選擇的是:MinGW-W64 GCC-8.1.0 x86_64-posix-sjlj  (已經編譯好的壓縮包,并非線上安裝程式)

配置過程:

  1. 下載下傳壓縮包
  2. 将壓縮包解壓到硬碟
  3. 配置編譯環境
假設我這裡将下載下傳的壓縮包解壓到:D:\mingw64 目錄下

配置環境變量(以Win7為例,Win10類似):

 簡便操作過程:

右擊“計算機” --》屬性 --》進階系統設定 --》環境環境 --》系統變量 --》“Path”變量 --》編輯,追加 ;D:\mingw64\bin
Windows系統下GCC配置, MinGW-W64 GCC安裝與配置,Dev-C++、CodeBlocksGCC各發行版簡介:編譯器或IDE下載下傳位址:MinGW-W64 GCC安裝與配置配置環境變量(以Win7為例,Win10類似):Dev-C++、CodeBlocks環境變量添加編譯第一個C/C++源代碼檔案GCC、make指令及Makefile簡單介紹

設定系統環境變量具體步驟

詳細操作過程:

在桌面選擇“計算機” --》右擊選擇“屬性” --》進入“控制台\所有控制台項\系統”選項 --》選擇左邊的“進階系統設定” --》彈出的系統屬性,選擇“環境變量” --》在系統環境變量裡,找到變量名為“Path” --》輕按兩下“Path”變量 --》在結尾追加“;D:\mingw64\bin”

Windows的“Path”環境變量是以分号為分隔符(“;”是英文的分号),不是中文的分号,切記!最後一個“Path”環境變量不需要分号!

驗證環境是否安裝

開始菜單 ---> 附件 ---> “指令行提示符”  或 “Win鍵+R”組合鍵,輸入:cmd

在指令行下輸入:gcc -v

如有輸出GCC資訊則配置成功,配置成功如圖:

Windows系統下GCC配置, MinGW-W64 GCC安裝與配置,Dev-C++、CodeBlocksGCC各發行版簡介:編譯器或IDE下載下傳位址:MinGW-W64 GCC安裝與配置配置環境變量(以Win7為例,Win10類似):Dev-C++、CodeBlocks環境變量添加編譯第一個C/C++源代碼檔案GCC、make指令及Makefile簡單介紹

MinGW-W64 GCC 配置成功輸出資訊

 環境變量添加錯誤将會提示無效指令。

添加make指令

make指令是Linux上用的比較多的指令,友善面快捷的編譯C/++程式。

進入D:\mingw64\bin目錄,拷貝複制一份“mingw32-make.exe”在該目錄,并重命名為“make.exe”
MinGW-W64預設把它命名為“mingw32-make.exe”檔案名,也可以直接更改該檔案名為“make.exe”,這裡為了以後有其它的工具會調用到“mingw32-make.exe”,特複制一份并命名為“make.exe”檔案而已。

Dev-C++、CodeBlocks環境變量添加

Dev-C++和CodeBlocks想要在控制台下使用,請添加如下環境變量到系統的“Path”變量當中

這裡我的假設是将Dev-C++和CodeBlocks安裝在D盤上,如不是安裝在D盤下,請自行更改相應的目錄

Dev-C++: D:\Dev-Cpp\MinGW64\bin

CodeBlocks: D:\CodeBlocks\MinGW\bin

make指令也是進入相應的 bin 目錄複制“mingw32-make.exe”檔案并重命名為“make.exe”檔案

編譯第一個C/C++源代碼檔案

源代碼:

// tex.c
#include <stdio.h>

int main(void)
{
    printf("Hello World\n");
    return 0;
}
           

編譯運作:

Windows系統下GCC配置, MinGW-W64 GCC安裝與配置,Dev-C++、CodeBlocksGCC各發行版簡介:編譯器或IDE下載下傳位址:MinGW-W64 GCC安裝與配置配置環境變量(以Win7為例,Win10類似):Dev-C++、CodeBlocks環境變量添加編譯第一個C/C++源代碼檔案GCC、make指令及Makefile簡單介紹

編譯C源代碼檔案,并運作編譯好的程式

小技巧:

在指令行下經常需要切換目錄,是一件比較麻煩的一件事。可以建立個“*.bat”檔案,内容為"start",将該批處理檔案放置到所建的工程目錄下,要使用指令行時,直接輕按兩下打開就可以了,不用切換目錄了。

GCC、make指令及Makefile簡單介紹

CGG參數(更多參數請輸入:gcc --help)

選項 說明
-E 隻進行預編譯,代碼送往标準輸出
-S 編譯生成彙編代碼
-c 編譯生成目标檔案”.o”,不連結成可執行檔案
-o out_filename 儲存為指定的檔案名,不指定預設為a.*檔案
-g 在可執行程式中包含标準調試資訊,要調試源檔案須添加
-On 這裡的“n”指的是數字,選擇程式要使用的優化級别,分别為-O1,-O2,-O3,一般使用-O2就可以了
-std= 選擇C準備,如:C99,C11等(例:-std=c11)
-Wall 打開所有類型文法警告,建議養成使用該選項的習慣(不包括-pedantic選項)
-pedantic 能夠幫助程式員發現一些不符合ANSI/ISO C标準的代碼(如未定義行為提示)

make指令

make指令執行時,需要一個 Makefile 檔案,以告訴make指令需要怎麼樣的去編譯和連結程式。

Makefile檔案簡介

makefile帶來的好處就是——“自動化編譯”,一旦寫好,隻需要一個make指令,整個工程完全自動編譯,極大的提高了軟體開發的效率。make是一個指令工具,是一個解釋makefile中指令的指令工具,一般來說,大多數的IDE都有這個指令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可見,makefile都成為了一種在工程方面的編譯方法。
 Makefile檔案是沒有檔案名字尾的,就一個名為“Makefile”的檔案

更多的Makefile檔案資料請自行搜尋檢視

下邊貼出我常用測試使用的Makefile檔案,“#”開頭為注釋,請按提示修改相應選項

all : tex

# 請根據自己的工程修改相應的選項内容,檔案為*nix(unix,Linux)格式,可用Notepad++等打開
# Windows系統記事本打開不會換行

# 要編譯的常用參數選項
CFLAGS=	-Wall -pedantic -O2

#要編譯的檔案名
obj = tex
#要編譯檔案字尾
suffix = .c
#要使用的編譯器(gcc或g++)
cc = gcc
#編譯标準(C:-std=c11,C++:-std=c++14)
Std = -std=c11
#要編譯成32或64位程式
Bit = -m32
#編譯檔案需要連接配接的其它庫檔案

CFLAGS+= $(Std)
CFLAGS+= $(Bit)

tex : $(obj)$(suffix)
	$(cc) $(obj)$(suffix) $(CFLAGS) $(LINK) -o $(obj)
	@./$(obj)
	@echo Error : %ERRORLEVEL%

.PHONY : clean
clean:
	-del $(obj).exe
           

将上邊内容儲存為一個“Makefile”,記得第一個字母為大寫,其它都是小寫(Windows會稍微寬一些,全小寫也可以),并把“Makefile”檔案放在要編譯的C/C++源檔案目錄下,打開指令行執行:make

# 執行編譯
D:\測試時間>make
gcc tex.c -Wall -pedantic -static -O2 -std=c11 -m32  -o tex
Hello World
Error : 0

# 執行清除
D:\測試時間>make clean
del tex.exe

D:\測試時間>
           

 簡單的一個C編譯工程:Hello World目錄

Windows系統下GCC配置, MinGW-W64 GCC安裝與配置,Dev-C++、CodeBlocksGCC各發行版簡介:編譯器或IDE下載下傳位址:MinGW-W64 GCC安裝與配置配置環境變量(以Win7為例,Win10類似):Dev-C++、CodeBlocks環境變量添加編譯第一個C/C++源代碼檔案GCC、make指令及Makefile簡單介紹

簡單的一個學習測試目錄檔案​​​​​

 編譯并執行、清除檔案:

Windows系統下GCC配置, MinGW-W64 GCC安裝與配置,Dev-C++、CodeBlocksGCC各發行版簡介:編譯器或IDE下載下傳位址:MinGW-W64 GCC安裝與配置配置環境變量(以Win7為例,Win10類似):Dev-C++、CodeBlocks環境變量添加編譯第一個C/C++源代碼檔案GCC、make指令及Makefile簡單介紹

make指令截圖

本文中用的測試檔案:https://gitee.com/duke56/test_time

本文沒有啥技術含量,純粹是給C/C++新學員參考配置學習環境用的!