Windows系統下GCC配置, MinGW-W64 GCC安裝與配置,Dev-C++、CodeBlocks

在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

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

詳細操作過程:

在桌面選擇“計算機” --》右擊選擇“屬性” --》進入“控制面板\所有控制面板項\系統”選項 --》選擇左邊的“高級系統設置” --》彈出的系統屬性,選擇“環境變量” --》在系統環境變量裏,找到變量名爲“Path” --》雙擊“Path”變量 --》在結尾追加“;D:\mingw64\bin”

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


驗證環境是否安裝

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

在命令行下輸入:gcc -v

如有輸出GCC信息則配置成功,配置成功如圖:

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;
}

編譯運行:

編譯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目錄

簡單的一個學習測試目錄文件​​​​​

 編譯並執行、清除文件:

make命令截圖

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章