MinGW/MSYS開發環境Part 1: 設定基礎系統

基礎系統包括一個編譯器、一個shell及一組UNIX命令列工具,編譯器跟相關的工具是由MinGW(the Minimalist GNU for Windows)套件提供,MSYS套件是一個最小的系統,提供POSIX相容的Bourne shell以及一些必備的實用工具。

安裝MinGW跟MSYS

MinGW32是GCC編譯器移植到win32平台的套件,MSYS是提供所有其它必要工具的基礎系統,這兩個套件可以使用新的MingGW-Get installer來安裝。

下載MingGW-Get installer:

mingw-get-inst-20101030.exe

2010-12-14_113048

執行installer,在第三個安裝螢幕,選擇Use pre-packaged repository catalogues,ㄚ琪是選用Download latest repository catalogues,不過要小心,以免太新的編譯器,會對文中的設定有影響。

2010-12-14_113108

在第五個安裝螢幕裡,你可以改變安裝目錄,之後出現上圖,是因為ㄚ琪之前已經裝了5.1.6版了,所以它會詢問要不要安裝在這個目錄裡,預設的C:mingw通常是比較好的。

2010-12-14_113353

在第七個安裝螢幕裡,選擇下列的組成:

C Compiler
C++ Compiler
MSYS Basic System
MSYS Developer Toolkit

2010-12-14_113411

一旦安裝完成,啟動MinGW Shell,你可以在開始->程式集-> MSYS -> MinGW Shell找到,我們會使用這個installer的命令列介面來安裝其餘的套件。

我較喜歡rxvt作為命令列終端機,安裝rxvt套件可以用下面的命令:

mingw-get install msys-rxvt

接下來,我們要建一個新捷徑,:你也可以複製現有的MinGW Shell捷徑,或是建構一個新捷徑到C:MinGWmsys1.0msys.bat,在新捷徑上按滑鼠右鍵以開啟其屬性,像下面這樣編輯:

Target: C:MinGWmsys1.0msys.bat –rxvt
Start in: C:MinGWmsys1.0bin

你可以給這個新捷徑一個喜歡的名稱,我稱作MSYS Shell,關閉MinGW Shell視窗,在新捷徑上雙擊MSYS Shell。

你可以在RXVT終端機使用shift+insert組合鍵來貼上之前複製的文字,你可以從這篇指南複製命令然後貼到終端機視窗內,假如你使用滑鼠選取文字,它也會自動複製。

安裝其餘的套件

我們會透過命令列安裝器安裝一些其餘的msys套件:

mingw-get install msys-wget
mingw-get install msys-zip
mingw-get install msys-unzip

安裝後的設定

MSYS模擬UNIX的檔案系統結構,預設情況下MSYS安裝目錄會被mount為root目錄,他也可以在/usr,MinGW安裝目錄會被mount為/mingw。

傳統的視窗裝置像是D:跟E:可以用/d或/e來存取,使用mount命令來取得概述:

mount

我們會新增三個額外的目錄到/etc/fstab,一旦新的shell啟動就可以mount:/opt,我們安裝一些新的額外套件到這個地方、/build事我們下載原始碼並編譯套件的地方,以及/usr/local是我們安裝我們自己編譯的套件的地方,這些目錄可以在任何地方,但是要讓設定簡單並且一致,我們會新增C:MinGWopt、 C:MinGWbuild跟C:MinGWlocal並且mount為/opt、/build/usr/local。

新增必須的目錄:

mkdir /c/mingw/build /c/mingw/opt /c/mingw/local

Mount這些目錄,這會自動加到/etc/fstab中:

mount 'C:MinGWlocal' /usr/local
mount 'C:MinGWopt' /opt
mount 'C:MinGWbuild' /build

/usr/local跟/opt新增必要的子目錄:

mkdir /opt/bin /usr/local/{bin,etc,include,lib,share}
mkdir /usr/local/lib/pkgconfig

建構profile.local:

cat > /usr/local/etc/profile.local << "EOF"
#
# /usr/local/etc/profile.local
#

alias dir='ls -la --color=auto'
alias ls='ls --color=auto'

PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"
CPPFLAGS="-I/usr/local/include"
CFLAGS="-I/usr/local/include -mms-bitfields"
CXXFLAGS="-I/usr/local/include -mms-bitfields"
LDFLAGS="-L/usr/local/lib"
export PKG_CONFIG_PATH CPPFLAGS CFLAGS CXXFLAGS LDFLAGS

PATH="${PATH}:/opt/bin"
PS1='[033[32m]u@h [033[33mw033[0m]$ '
export PATH PS1

EOF

確認在登錄時可以執行:

cat >> /etc/profile << "EOF"
if [ -f /usr/local/etc/profile.local ]; then
        source /usr/local/etc/profile.local
fi

EOF

我們新增兩個額外的環境變數來指示套件建構目錄以及安裝的前置字串,這份指南的後面會依賴這些變數來指到正確的目錄:

cat >> /usr/local/etc/profile.local << "EOF"
# package build directory
LOCALBUILDDIR=/build
# package installation prefix
LOCALDESTDIR=/usr/local
export LOCALBUILDDIR LOCALDESTDIR

EOF

套用新的設定:

source /usr/local/etc/profile.local

設定vim

(假如你不想使用VIM編輯器可以跳過這節)

新增VIM的組態檔:

cat > ~/.vimrc << "EOF"
" Configuration file for VIM
set nocompatible
set bs=2                " allow backspacing over everything in insert mode
set ai                  " set autoindenting on
" set backup            " keep a backup file
set nobackup            " do not keep a backup file
set history=256	        " keep 256 lines of command line history
set ruler               " show the cursor position all the time
set tabstop=8           " tab at 4 characters
set shiftwidth=8        " 4 characters indentation
set nowrap              " do not wrap long lines
set visualbell          " no bell
set background=light    " msys rxvt has a light background
"set background=dark    " mingw shell uses a black background
syntax on               " syntax highlighting on

EOF

設定vim為預設的編輯器

cat >> /usr/local/etc/profile.local << "EOF"
EDITOR=vim
export EDITOR
EOF

在/opt安裝額外的套件

我們會安裝一些協力廠商的工具到/opt以避免干擾到預設的套件。

下載並安裝win32 subversion客戶端:

wget -c http://downloads.sourceforge.net/project/win32svn/1.6.13/svn-win32-1.6.13.zip
unzip svn-win32-1.6.13.zip
cp -va svn-win32-1.6.13/* /opt
mkdir /opt/share/svn-win32-1.6.13
mv /opt/README.txt /opt/share/svn-win32-1.6.13
rm -rf svn-win32-1.6.13 svn-win32-1.6.13.zip

下載並安裝win32的cmake:

wget -c http://www.cmake.org/files/v2.8/cmake-2.8.3-win32-x86.zip
unzip cmake-2.8.3-win32-x86.zip
cp -va cmake-2.8.3-win32-x86/* /opt
rm -rf cmake-2.8.3-win32-x86 cmake-2.8.3-win32-x86.zip

後記:MinGW/MSYS設定確實很簡單,比起水瓶尤加利的輕鬆學會 MSYS + MinGW —- 在 Windows 底下重新編譯 GNU 程式中所提的MinGW-5.1.x.exe設定方式更簡單, 但是ㄚ琪現在還卡在Part 3的GTK的編譯部份,很多都make錯誤,所以還得靜待一段期間好好瞭解一下,而本篇的設定,基於編譯的需求,有些已經有變更了,待ㄚ琪搞定第三部份後,再來更新第一部份吧!

感謝你看到這裡,很快就可以離開了,但最好的獎勵行動就是按一下幫我分享或留言,感恩喔~

點我分享到Facebook

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *