2013年9月22日 星期日

在Windows環境下設置mingw(C/C++)環境

在Linux系列的電腦上,

應該預設都會裝好gcc,g++等編譯器,

那如果是在Windows下,卻要怎麼辦呢?

Section 1. Introduction

在Linux系統底下我們可以用VIM或Easy Editor或其它文字編輯器來編寫程式,

在第一部份我們先來看看怎麼安裝這些文字編輯器吧:)

相信我,要用記事本來打程式絕對會讓人瘋掉的XD

1.1 Editor

1.1.1 Code::Blocks


Code::Blocks可說是近期最受歡迎的IDE之一,

其自動縮排、編排程式碼的功能比起Dev-C++等都較為出色,

且VIM中的許多功能也都有整合進Code::Blocks中(如複製整行、兩行交換、取代、搜尋、分割視窗等功能均能找的到,

搜尋、Makefile、大型project、GUI設計、除錯功能都相當好

算是功能相當強大的IDE軟體.

除了可以編寫C/C++程式碼之外,

亦支援JAVA、QT、GTK等程式碼,

適用範圍相當廣泛

1.1.2 VIM / GVIM


VIM便是Linux系列一大主流編輯器,

在Windows系統上亦可安裝.

另外GVIM是GUI版的VIM,

可支援滑鼠操作,而且也可以使用VIM的所有功能,

算是VIM的再強化版(其實也就只是能用滑鼠而已啦XD)

關於VIM的說明,請見這裡

1.2 Compiler

1.2.1 Along with IDE

若你是下載Code::Blocks(with Mingw)的話,

它就有內附編譯器了,不必另行安裝

Code::Blocks的安裝說明,請見Section 2.

1.2.2 Mingw

Mingw是一套在Windows底下的編譯器系統,

和Linux下的gcc、g++等一樣可以將程式碼編譯為程式,

也可以一樣下達各類編譯器參數,

關於編譯器參數,請見詳細說明(待新增)

當然,這套程式也附有gdb以及make功能,

功能算是相當完善

Section 2. Code::Blocks and VIM

在此只介紹基本用法,更多的Code::Blocks的操作介紹請見這裡(待新增)

VIM的介紹(1)

2.1 Installation

Code::Blocks:
Download link (含編譯器)
Download link (不含編譯器),如果你有安裝Mingw的話,請選這個比較節省硬碟空間

如果你不知道要選什麼的話,請選含編譯器的版本

安裝過程並無任何特殊之處,故在此不贅述,

一路按下一步即可安裝完成

最後一步它會問你要不要執行Code::Blocks

若你確定執行它的話將會進入2.2節的內容

VIM:
Download link

安裝過程中亦無特殊之處故亦不贅述

2.2 Execution

第一次執行時候會跳出一個偵側編譯器的視窗


直接點OK即可(若很多行都顯示紅色沒關係,只要確認Mingw已經有裝上去即可)

剛開啟的畫面如下,左側Management和下方的Log & others可以直接關掉沒關係

上方的工具列也可以自由移動至你喜歡的位置或者移除(可以在上方工具列→View→Toolbar裡面移除,但請至少留下Main、Compiler兩項)


然後我們一樣要先來調整字型才不傷眼力,

由上方工具列Settings→Editor進入

點圖中所示的"Choose"選擇字型


接著我們可以按Ctrl+Shift+N開新檔案,我們先存檔(見2.3節)

2.3 Saving

按下Ctrl+S就可以存檔了


2.4 Compile and run 

接下來我們就可以開始打程式了,

打好之後我們需要用gcc來編譯這支程式,

請點上方工具列有一個齒輪和三角型的按鈕(compile and run)(圖中最下行左起第三按鈕)

你的位置可能會與我的不同,若找不到的話亦可按F9


打好後看到下方Log & others框中會顯示編譯訊息,

有關compile error,請見這篇(待新增)

然後就會自動執行了

左起第一是僅編譯這支程式(Ctrl + F9)

左起第二是執行這支程式編譯而成的檔案(Ctrl + F10)
(所以如果你還沒編譯的話會要求你先編譯)

Section 3. Setting up environment

這一節討論的是如何在命令提示字元底下使用gcc、vim等的指令,

稍候我們會介紹操作實例

3.1 Environment variable

首先先打開我的電腦

若你是用XP電腦的話請點左側"檢視系統資訊",在跳出來的視窗裡點選"進階"頁籤

不好意思因為我沒有XP的電腦就不截圖說明了><

不過接下來(第3張圖之後)的操作方法皆完全相同,所以不必擔心

XP的用戶可以跳過前兩張圖

Windows 7的話請點上方系統內容


再點左邊"進階系統設定"


點選下方"環境變數"


在"系統變數"欄下的"PATH"上點兩下啟用編輯


在變數值那欄中附加上(注意不要蓋掉原有的內容)以下內容
 

註:若變數值的最後一個字沒有分號的話,請先自己補上一個分號再輸入以下內容

VIM 在安裝時會自動設定好路徑,所以不必再更改

如果沒有安裝這些東西的話,就不必填上對應的路徑

若裝Code::Blocks則輸入(XP以下)
C:\Program Files\CodeBlocks\MinGW\bin; 
Vista以上的Code::Blocks:
C:\Program Files (x86)\CodeBlocks\MinGW\bin;C:\Program Files (x86)\CodeBlocks;
若裝了Mingw則輸入
C:/mingw/bin;
輸入完請一路按確定退出即完成

3.2 Test

為了要確認一切在命令提示字元(文字模式)底下可以正確執行,

所以要先測試一下我們在上一節的設定是否成功

首先我們按Win + R鍵呼叫"執行"對話窗,輸入cmd後按Enter
(Section 4.將有更詳盡的說明)


(Windows 7以上的電腦可以輸入powershell,可叫出與Linux較為接近的對話窗)


若無法正常執行,請重新設定一次上一節的環境變數項

若你有裝編譯器(Mingw or Code::Blocks with compiler)
ld
You should able to see the following on your screen.
ld: no input files
若你有裝VIM:
gvim
會跳出一個VIM的視窗,可以直接先關掉

若你有裝Code::Blocks
codeblocks
接著就會出現Code::Blocks的畫面了,直接關掉它即可

如果一切都可正常運行的話那麼Mingw的環境基本上就設定完成囉:)

有安裝VIM的話也代表你以後可以直接在命令提示字元裡直接輸入 vim 來進行編輯

Section 4. Windows command prompt (cmd or powershell)

我們把Code::blocks裝好之後,雖然有很漂亮的圖形介面可以編譯、執行了,

但為了預防不可預見的災難發生呢,還是要學一下在文字介面下如何編譯及執行

(以下均假設你已經在Section 3.中設定完成,若還沒設定的話請先設定一下喔)

4.1 Execution

同3.2節中的執行方法,我們再複習一下



4.2 Modification


一樣,我們要先來改字型,寫起程式來才不會傷眼力

在標題視窗按右鍵後選內容(cmd,powershell均適用此法)



在"字型"頁籤設定字型至20號字,細明體



設定字體顏色至白色(較清楚)



確定後即可關閉,然後應可看到螢幕上的字變大了,到這裡算是設定完成囉~

4.3 Some examples


這裡要來介紹一下Windows下的指令(與Linux有些不同,但仍有些滿接近的)

首先介紹 cmd 中常用的指令:
dir --- directory, equivalent to ls in Linux

example: dir

cd --- change directory, equivalent to that in Linux

example: cd ..

mkdir --- make directory, equivalent to that in Linux

example: mkdir folder

del --- delete, equivalent to rm in Linux

example: del *.exe

move --- move, equivalent to mv in Linux

example: move a.exe b.exe

copy --- copy, equivalent to cp in Linux

example: copy -r ./*.cpp /

vim --- vi improved, equivalent to that in Linux

example: vim file

codeblocks --- codeblocks IDE

example: codeblocks

gcc --- gcc compiler, equivalent to that in Linux

example: gcc file.c

mingw32-make --- make program, equivalent to make in Linux

example: mingw32-make clean 

接著是Powershell裡的常用指令:
ls --- list, equivalent to that in Linux

example: ls

cd --- change directory

example: cd /

mkdir --- make directory

example: mkdir folder

rm --- remove

example: rm *.txt

mv --- move

example: mv file folder

cp --- copy

example: cp file folder

vim --- vi improved

example: vim

codeblocks --- codeblocks IDE

example: codeblocks

gcc --- gcc compiler

example: gcc -S hw0.c

mingw32-make --- make program, equivalent to make in Linux

example: mingw32-make 

除了make指令仍不同之外可以發現其它均與Linux系統相同喔

Section 5. Upload

5.1 FTP(command prompt)


按Win + R後輸入
ftp ghost.cs.nccu.edu.tw



輸入使用者名稱及密碼


連線成功,用 cd 指令到達你要交作業的資料夾( 如 assign1 )
cd assign1



接著用 lcd 指令到達本機放作業的目錄 eg.
lcd Desktop

這指令可以到達你的桌面,看你的檔案放在哪可以再去到你的目的資料夾,

要下載作業資料夾下來,請到達 cp1 的資料夾後輸入
mget assign0

會詢問要不要下載,按y即可

5.2 FTP(explorer)

請開啟我的電腦後在網址列輸入
ftp://ghost.cs.nccu.edu.tw



輸入帳號密碼


接下來你就會到達你的家目錄(也就是你一開始登入到的地方),

可以直接把作業資料夾整個下載到你的電腦裡進行

操作模式基本上和Windows檔案總管一模一樣,

相信大家應該都沒問題,所以在這裡就不再贅述囉:)

5.3 Uploading

最後別忘了作業要交出去才算數啊!

在此介紹如何上傳作業到FTP上:

若你是用5.2節的方式,那很簡單,只要將作業拖曳進去,確認取代後即可

若你是用5.1節的方式,請先用 cd 和 lcd 指令進到你作業的資料夾後接著輸入
mput *
上傳之後還要用這篇的方式來繳交才算完成喔

沒有留言:

張貼留言