MinGW/MSYS开发环境Part 1: 设定基础系统

基础系统包括一个编译器、一个shell及一组UNIX命令列工具,编译器跟相关的工具是由MinGW(the Minimalist GNU for Windows)套件提供,MSYS套件是一个最小的系统,提供POSIX相容的Bourne shell以及一些必备的实用工具。

[adsense]

安装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:\MinGW\msys\1.0\msys.bat,在新捷径上按滑鼠右键以开启其属性,像下面这样编辑:

Target: C:\MinGW\msys\1.0\msys.bat –rxvt
Start in: C:\MinGW\msys\1.0\bin

你可以给这个新捷径一个喜欢的名称,我称作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:\MinGW\opt、 C:\MinGW\build跟C:\MinGW\local并且mount为/opt、/build/usr/local。

新增必须的目录:

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

Mount这些目录,这会自动加到/etc/fstab中:

mount 'C:\MinGW\local\' /usr/local
mount 'C:\MinGW\opt\' /opt
mount 'C:\MinGW\build\' /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[33m\w\033[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错误,所以还得静待一段期间好好了解一下,而本篇的设定,基于编译的需求,有些已经有变更了,待ㄚ琪搞定第三部份后,再来更新第一部份吧!

Comments are closed.