声明:
本主翻译自mingwwin32邮件列表上的文章。原文地址如下:
http://gcc.gnu.org/ml/gcc-help/2006-09/msg00000.html
------------------------------------------------------------
我写了一个在WINDOW32平台上,利用mingw编译最新的gcc(4.1.1)的指南。
readme.lst 请愿凉我不太地道的英语。
I - 建立mingw工作环境
II - 安装预编译的gcc二进制文件
III - 创建宿主环境
IV - 编译,安装gcc
V - 安装其它工具
VI - 成功
----------------------------------------
I 建立mingw环境
最先需要的当然是一个功能完善的mingw环境。这个工作可以通过下载并安装mingw发布的二进制安装包完成。下载地址:http://www.mingw.org
msys 1.0.10: http://prdownloads.sf.net/mingw/MSYS-1.0.10.exe?download
为了清楚理解, 我假设你把msys安装到了C盘C:/
这样,msys就将在如下位置: c:/msys
----------------------------------------
II 安装预编译的gcc二进制文件
现在我们已经有了一个基本的工作环境msys了。我们还需要安装gcc的某个版本,以利用它来编译得到最新的gcc版本。下载并安装下列文件。
来自GnuWin32工程:
bison:
http://prdownloads.sourceforge.net/gnuwin32/bison-2.1-bin.zip?download
flex:
http://prdownloads.sourceforge.net/gnuwin32/flex-2.5.4a-1-bin.zip?download
libiconv:
http://prdownloads.sourceforge.net/gnuwin32/libiconv-1.9.2-1-bin.zip?download
libintl:
http://prdownloads.sourceforge.net/gnuwin32/libintl-0.14.4-bin.zip?download
来自MinGW工程:
win32api:
http://prdownloads.sourceforge.net/mingw/w32api-3.7.tar.gz?download
mingw-runtime:
http://prdownloads.sourceforge.net/mingw/mingw-runtime-3.10.tar.gz?download
binutils:
http://prdownloads.sourceforge.net/mingw/binutils-2.17.50-20060824-1.tar.gz?download
gcc-core:
http://prdownloads.sourceforge.net/mingw/gcc-core-3.4.5-20060117-1.tar.gz?download
现在开始安装。先在C盘下创建一个目录gcc, 后面将所有的文件都解压缩到这里。当然你可以下创建其它任何名称的目录。将所有文件都解压缩到gcc目录中。其中libiconv和libintl只需要解压缩其中的包含了DLL的bin目录就行了,并将bin目录中的内容都复制到gcc/bin目录中。
重要提示:在解压缩完成后,到gcc/bin目录中,删除其中的m4.exe文件(msys使用另一个m4程序,它包含中msys的安装中)。
完成后,将c:/gcc/bin路径加入到系统的PATH路径中去。
注意,我们没有使用gcc-g++包, 这是因为编译gcc不需要C++支持。
这时候,可以测试一下安装是否正常了。打开msys并输入:
#gcc -v
这里输出的信息就是预编译gcc的信息。如果一切正常,就进入下一步。
----------------------------------------
III 创建GCC宿主环境
在安装前,我们要先建立一个宿主目录,这个目录中将装载gcc新版本的二进制文件和其它文件。这一步必须在开始安装之前完成,因为在编译过程中,这里的文件还是要使用的。
假如你将msys和gcc安装在C盘下,那你的目录结构应该如下:
c:/
|
|--fold1
|--fold2
|--gcc <= 这儿安装的是预编译的gcc
|--msys <= 这儿是msys环境
| |
| |--bin
| |--doc
| |--etc
| |--home
| |--mingw <= 编译的gcc将要安装到这儿
|--foldn
|
现在来安装gcc的宿主环境。(c:/msys/mingw)
先安装mingw-runtime, binutils, win32 api。 只需要将文件直接解压缩到c:/msys/mingw下就行了。对于binutils,你可以直接使用下载的二进制包,或自行编译。如果要自行编译binutils,请参考下章的说明。
----------------------------------------
IV 编译安装gcc
在msys下,创建一个工作文件目录,在编译过程中的临时文件和源文件都可以放到它下面。
#cd /
#mkdir gcc-work && cd gcc-work
#mkdir {build, source}
编译binutils:
如果要编译binutils,下面是操作方法。如果不编译,可以直接跳过此节。
下载源文件:
http://ftp.gnu.org/gnu/binutils/binutils-2.17.tar.bz2
复制文件到源目录(刚建立的工作目录中:/gcc-work/source)并解压缩。
#cd source
#tar jxvf binutils-2.17.tar.bz2
#
到编译目录中,创建一个临时目录,编译后的binutils放在这儿。
#cd ../build
#mkdir binutils
#mkdir binutils
#
配置、编译、安装
#../../source/binutils-2.17/configure --prefix=/mingw --host=mingw32 --target=mingw32 --program-prefix="" --with-lib-path=/mingw/mingw32/lib:/mingw/lib:/usr/local/lib:/lib:/usr/lib --with-gcc --with-gnu-as --with-gnu-ld --disable-nls --disable-shared
#make CFLAGS="-O2 -D_USE_CRTIMP -fno-exceptions" LDFLAGS=-s
#
这些标志参数都是自解释的。你也可以运行configure --help来得到具体的解释说明。不过请特别注意一下--with-lib-path参数。它决定了binutils工具,象ld在什么地方找到共享库。因为我们要安装到mingw下,所以路径的前两个都以/mingw开头。如果你因为某些原因要改变这个前缀,请记住一定要改这个标志。如果还有其它路径要使用在msys下,也可以加入其中。
回车!!!
现在嘛,是喝口茶,休息一下了:-)
整个过程会持续几分钟。
编译完成后,就是安装了,很简单:
#make install
#
**安装gcc
最期待人心的时候终于来了。开始编译gcc啦。 gcc是自编译的,所以一点儿也不要担心什么。
首先,下载源文件。这里我只准备安装C和C++。你可以自行下载其它语言包,并小修改一下命令行参数就可能对其它语言进行支持了。
下面地址可以得到gcc的配置说明:
http://gcc.gnu.org/install/configure.html
源代码下载:
gcc-core: http://ftp.gnu.org/gnu/gcc/gcc-4.1.1/gcc-core-4.1.1.tar.bz2
gcc-g++: http://ftp.gnu.org/gnu/gcc/gcc-4.1.1/gcc-g++-4.1.1.tar.bz2
下载到源文件目录,并解压缩:
#cd gcc-work/source
#tar jxf gcc-core-4.1.1.tar.bz2
#tar jxf gcc-g++-4.1.1.tar.bz2
到编译目录中,创建一个临时目录:
#cd ../build
#mkdir gcc
#cd gcc
#
配置:
# ../../source/gcc-4.1.1/configure --prefix=/mingw --host=mingw32
--target=mingw32 --program-prefix="" --with-as=/mingw/bin/as.exe --with-ld=/mingw/bin/ld.exe --with-gcc --with-gnu-ld --with-gnu-as --enable-threads --disable-nls --enable-languages=c,c++ --disable-win32-registry --disable-shared --without-x --enable-interpreter --enable-hash-synchronization --enable-libstdcxx-debug
# make CFLAGS="-O2 -fomit-frame-pointer" CXXFLAGS="-mthreads -fno-omit-frame-pointer -O2" LDFLAGS=-s bootstrap2
bootstrap进程在gcc的文档中得到推荐,它可能使生成的代码更加优化。在bootstrap时,将产生一个编译器,它用来编译别一个编译器,而这个编译器又可以编译另一个。。。。如此往复。bootstrap2指在最终版本产生前,将产生两个预版本。
很明显,这样做会很耗时,但将会产生更优秀的结果。如果你不想要一个bootstrap的版本,可以在中去掉bootstrap2参数。
现在可以享受一个比较长的时候啦。编译会是很漫长的一个过程。编译完成后,简单的执行:
#make install
#
就OK了。
现在你自己版本的gcc已经安装成功了。 你可以删除掉工作目录和前期安装的预编译gcc版本。记得把新安装的gcc的路径加入PATH环境变量中。
----------------------------------------
V 添加其它工具
gcc新版本已经安装成功了。我们可以再添加些其它开发工具。我准备加入gdb和make.
下载预编译的gdb版本:
gdb 6.3-2: http://prdownloads.sourceforge.net/mingw/gdb-6.3-2.exe?download
将它安装到c:/msys/mingw
(我自己成功了一个6.5版本的gdb,可惜的是不支持原始的pe程序结构。所以另一个好的选择就是上面所述的,安装预编译版本)
安装make:
事实上,msys本身就带有一个make,但是如果你不打算在以后使用msys,而又要通过Makefile来配置你的工程。那最好还是安装一个自己的make.
可以通过直接解压缩文件到c:/msys/mingw来完成make的安装。文件下载地址是:
http://prdownloads.sourceforge.net/mingw/mingw32-make-3.81-1.tar.gz?download
或者自己编译。源代码地址:
make 3.81 source: http://ftp.gnu.org/gnu/make/make-3.81.tar.bz2
复制文件到源代码目录:
# cd /gcc-work/source
# tar jxf make-3.81.tar.bz2
进入工作目录,并创建临时文件夹:
# cd ../build && mkdir make
# cd make
编译:
# ../../source/make-3.81/configure --prefix=/mingw --target=mingw32 --program-prefix="" --disable-nls --disable-dependency-tracking
# make CFLAGS=-O2 LDFLAGS=-s
# make install
----------------------------------------
VI 快乐的开发程序吧
现在你可以使用最新版本的gcc来开发自己喜爱的程序啦。享受吧,朋友们!!!
上述的编译过程在winxp/win2000上都成功了。在其它版本上应该也会成功,如win98/ME/NT/2003/Vista.
最最新的gcc通过上述的步骤也已经成功安装了。
Marcelo A B Slomp
mslomp^at^linuxmail^dot^org
View this message in context: http://www.nabble.com/Problem-in-Install-gcc-on-Windows-XP-tf2194467.html#a6090797
Sent from the gcc - Help forum at Nabble.com.
----------------------------------------
whiteear
编译完成
2006-11-06
本主翻译自mingwwin32邮件列表上的文章。原文地址如下:
http://gcc.gnu.org/ml/gcc-help/2006-09/msg00000.html
------------------------------------------------------------
我写了一个在WINDOW32平台上,利用mingw编译最新的gcc(4.1.1)的指南。
readme.lst 请愿凉我不太地道的英语。
I - 建立mingw工作环境
II - 安装预编译的gcc二进制文件
III - 创建宿主环境
IV - 编译,安装gcc
V - 安装其它工具
VI - 成功
----------------------------------------
I 建立mingw环境
最先需要的当然是一个功能完善的mingw环境。这个工作可以通过下载并安装mingw发布的二进制安装包完成。下载地址:http://www.mingw.org
msys 1.0.10: http://prdownloads.sf.net/mingw/MSYS-1.0.10.exe?download
为了清楚理解, 我假设你把msys安装到了C盘C:/
这样,msys就将在如下位置: c:/msys
----------------------------------------
II 安装预编译的gcc二进制文件
现在我们已经有了一个基本的工作环境msys了。我们还需要安装gcc的某个版本,以利用它来编译得到最新的gcc版本。下载并安装下列文件。
来自GnuWin32工程:
bison:
http://prdownloads.sourceforge.net/gnuwin32/bison-2.1-bin.zip?download
flex:
http://prdownloads.sourceforge.net/gnuwin32/flex-2.5.4a-1-bin.zip?download
libiconv:
http://prdownloads.sourceforge.net/gnuwin32/libiconv-1.9.2-1-bin.zip?download
libintl:
http://prdownloads.sourceforge.net/gnuwin32/libintl-0.14.4-bin.zip?download
来自MinGW工程:
win32api:
http://prdownloads.sourceforge.net/mingw/w32api-3.7.tar.gz?download
mingw-runtime:
http://prdownloads.sourceforge.net/mingw/mingw-runtime-3.10.tar.gz?download
binutils:
http://prdownloads.sourceforge.net/mingw/binutils-2.17.50-20060824-1.tar.gz?download
gcc-core:
http://prdownloads.sourceforge.net/mingw/gcc-core-3.4.5-20060117-1.tar.gz?download
现在开始安装。先在C盘下创建一个目录gcc, 后面将所有的文件都解压缩到这里。当然你可以下创建其它任何名称的目录。将所有文件都解压缩到gcc目录中。其中libiconv和libintl只需要解压缩其中的包含了DLL的bin目录就行了,并将bin目录中的内容都复制到gcc/bin目录中。
重要提示:在解压缩完成后,到gcc/bin目录中,删除其中的m4.exe文件(msys使用另一个m4程序,它包含中msys的安装中)。
完成后,将c:/gcc/bin路径加入到系统的PATH路径中去。
注意,我们没有使用gcc-g++包, 这是因为编译gcc不需要C++支持。
这时候,可以测试一下安装是否正常了。打开msys并输入:
#gcc -v
这里输出的信息就是预编译gcc的信息。如果一切正常,就进入下一步。
----------------------------------------
III 创建GCC宿主环境
在安装前,我们要先建立一个宿主目录,这个目录中将装载gcc新版本的二进制文件和其它文件。这一步必须在开始安装之前完成,因为在编译过程中,这里的文件还是要使用的。
假如你将msys和gcc安装在C盘下,那你的目录结构应该如下:
c:/
|
|--fold1
|--fold2
|--gcc <= 这儿安装的是预编译的gcc
|--msys <= 这儿是msys环境
| |
| |--bin
| |--doc
| |--etc
| |--home
| |--mingw <= 编译的gcc将要安装到这儿
|--foldn
|
现在来安装gcc的宿主环境。(c:/msys/mingw)
先安装mingw-runtime, binutils, win32 api。 只需要将文件直接解压缩到c:/msys/mingw下就行了。对于binutils,你可以直接使用下载的二进制包,或自行编译。如果要自行编译binutils,请参考下章的说明。
----------------------------------------
IV 编译安装gcc
在msys下,创建一个工作文件目录,在编译过程中的临时文件和源文件都可以放到它下面。
#cd /
#mkdir gcc-work && cd gcc-work
#mkdir {build, source}
编译binutils:
如果要编译binutils,下面是操作方法。如果不编译,可以直接跳过此节。
下载源文件:
http://ftp.gnu.org/gnu/binutils/binutils-2.17.tar.bz2
复制文件到源目录(刚建立的工作目录中:/gcc-work/source)并解压缩。
#cd source
#tar jxvf binutils-2.17.tar.bz2
#
到编译目录中,创建一个临时目录,编译后的binutils放在这儿。
#cd ../build
#mkdir binutils
#mkdir binutils
#
配置、编译、安装
#../../source/binutils-2.17/configure --prefix=/mingw --host=mingw32 --target=mingw32 --program-prefix="" --with-lib-path=/mingw/mingw32/lib:/mingw/lib:/usr/local/lib:/lib:/usr/lib --with-gcc --with-gnu-as --with-gnu-ld --disable-nls --disable-shared
#make CFLAGS="-O2 -D_USE_CRTIMP -fno-exceptions" LDFLAGS=-s
#
这些标志参数都是自解释的。你也可以运行configure --help来得到具体的解释说明。不过请特别注意一下--with-lib-path参数。它决定了binutils工具,象ld在什么地方找到共享库。因为我们要安装到mingw下,所以路径的前两个都以/mingw开头。如果你因为某些原因要改变这个前缀,请记住一定要改这个标志。如果还有其它路径要使用在msys下,也可以加入其中。
回车!!!
现在嘛,是喝口茶,休息一下了:-)
整个过程会持续几分钟。
编译完成后,就是安装了,很简单:
#make install
#
**安装gcc
最期待人心的时候终于来了。开始编译gcc啦。 gcc是自编译的,所以一点儿也不要担心什么。
首先,下载源文件。这里我只准备安装C和C++。你可以自行下载其它语言包,并小修改一下命令行参数就可能对其它语言进行支持了。
下面地址可以得到gcc的配置说明:
http://gcc.gnu.org/install/configure.html
源代码下载:
gcc-core: http://ftp.gnu.org/gnu/gcc/gcc-4.1.1/gcc-core-4.1.1.tar.bz2
gcc-g++: http://ftp.gnu.org/gnu/gcc/gcc-4.1.1/gcc-g++-4.1.1.tar.bz2
下载到源文件目录,并解压缩:
#cd gcc-work/source
#tar jxf gcc-core-4.1.1.tar.bz2
#tar jxf gcc-g++-4.1.1.tar.bz2
到编译目录中,创建一个临时目录:
#cd ../build
#mkdir gcc
#cd gcc
#
配置:
# ../../source/gcc-4.1.1/configure --prefix=/mingw --host=mingw32
--target=mingw32 --program-prefix="" --with-as=/mingw/bin/as.exe --with-ld=/mingw/bin/ld.exe --with-gcc --with-gnu-ld --with-gnu-as --enable-threads --disable-nls --enable-languages=c,c++ --disable-win32-registry --disable-shared --without-x --enable-interpreter --enable-hash-synchronization --enable-libstdcxx-debug
# make CFLAGS="-O2 -fomit-frame-pointer" CXXFLAGS="-mthreads -fno-omit-frame-pointer -O2" LDFLAGS=-s bootstrap2
bootstrap进程在gcc的文档中得到推荐,它可能使生成的代码更加优化。在bootstrap时,将产生一个编译器,它用来编译别一个编译器,而这个编译器又可以编译另一个。。。。如此往复。bootstrap2指在最终版本产生前,将产生两个预版本。
很明显,这样做会很耗时,但将会产生更优秀的结果。如果你不想要一个bootstrap的版本,可以在中去掉bootstrap2参数。
现在可以享受一个比较长的时候啦。编译会是很漫长的一个过程。编译完成后,简单的执行:
#make install
#
就OK了。
现在你自己版本的gcc已经安装成功了。 你可以删除掉工作目录和前期安装的预编译gcc版本。记得把新安装的gcc的路径加入PATH环境变量中。
----------------------------------------
V 添加其它工具
gcc新版本已经安装成功了。我们可以再添加些其它开发工具。我准备加入gdb和make.
下载预编译的gdb版本:
gdb 6.3-2: http://prdownloads.sourceforge.net/mingw/gdb-6.3-2.exe?download
将它安装到c:/msys/mingw
(我自己成功了一个6.5版本的gdb,可惜的是不支持原始的pe程序结构。所以另一个好的选择就是上面所述的,安装预编译版本)
安装make:
事实上,msys本身就带有一个make,但是如果你不打算在以后使用msys,而又要通过Makefile来配置你的工程。那最好还是安装一个自己的make.
可以通过直接解压缩文件到c:/msys/mingw来完成make的安装。文件下载地址是:
http://prdownloads.sourceforge.net/mingw/mingw32-make-3.81-1.tar.gz?download
或者自己编译。源代码地址:
make 3.81 source: http://ftp.gnu.org/gnu/make/make-3.81.tar.bz2
复制文件到源代码目录:
# cd /gcc-work/source
# tar jxf make-3.81.tar.bz2
进入工作目录,并创建临时文件夹:
# cd ../build && mkdir make
# cd make
编译:
# ../../source/make-3.81/configure --prefix=/mingw --target=mingw32 --program-prefix="" --disable-nls --disable-dependency-tracking
# make CFLAGS=-O2 LDFLAGS=-s
# make install
----------------------------------------
VI 快乐的开发程序吧
现在你可以使用最新版本的gcc来开发自己喜爱的程序啦。享受吧,朋友们!!!
上述的编译过程在winxp/win2000上都成功了。在其它版本上应该也会成功,如win98/ME/NT/2003/Vista.
最最新的gcc通过上述的步骤也已经成功安装了。
Marcelo A B Slomp
mslomp^at^linuxmail^dot^org
View this message in context: http://www.nabble.com/Problem-in-Install-gcc-on-Windows-XP-tf2194467.html#a6090797
Sent from the gcc - Help forum at Nabble.com.
----------------------------------------
whiteear
编译完成
2006-11-06