looker 发表于 2009-5-10 19:08:35

在Windows下编译GCC的过程,使用MinGW+Msys

在MS下使用GCC,一个办法就是使用MinGW,但是MinGW很久没有更新了,虽然有TDM版本。但是还是想自己编译回

使用的环境是TDM MinGW 4.4.0 + Msys 1.0.11

首先下载:
gcc(编译器,包括gcc-core,如果还需要编译C++程序,应加上gcc-g++)
binutils(链接和汇编工具:如ld, as, ar)
mingw-runtime(Windows上的C运行库)
Windows 32 API(Windows应用程序接口)
mingw32-make for make(类似gnu 的make)

这五个文件包,然后将他们解压到同一个文件夹下面即可。这样一个能使用的MinGW就完成了。在这里可以将安装的路径添加到环境变量PATH中去
然后再安装Msys,最新的Msys 1.0.11没有像以前的版本那样提供.exe格式的压缩包,将msysCORE-1.0.11-20080826.tar.gzMSYS-1.0.11-20090120-dll.tar.gz这两个文件下载下来,然后解压到同一个文件夹中去,然后修改etc目录下的fstab文件,修改MinGW所在的路径

这样,一个最简单的环境搭建完成

looker 发表于 2009-5-10 19:10:33

编译很慢 所以一定要有耐心~~

msys中复制粘贴的操作:
复制:选择你要复制的部分,然后鼠标点一下,就可以了。
粘帖:只需用shift+鼠标左键,就可以直接将剪贴板内的文字粘帖进来了。

looker 发表于 2009-5-10 19:35:17

打算编译的是GCC 4.3.3版本,因为是个实验过程,所以选择了这个版本
下载gcc-core gcc-g++这两个包

然后在下载gmp-4.3.0 mpfr-2.4.1这两个包,主要是因为GCC依赖于GMP和MPFR

先编译安装gpm,因为mpfr依赖于gpm

cd 到gmp-4.3.0.tar.bz2所在的目录
tar -jvf ./gmp-4.3.0.tar.bz2
./configure
./make
./make install
gpm安装完成,但是是安装到/local目录下去了,这个在编译mpfr过程中出现了问题
在configure mpfr时,报错找不到gpm.h这个文件,但是该文件存在于/local/include目录下的
后来尝试export PATH=/local/include:$PATH,但是仍然解决不了问题,只好将/local/include目录下的文件拷贝到gcc安装目录下的相关目录中

编译安装mpfr的过程类似于gpm
http://cache.amobbs.com/bbs_upload782111/files_14/ourdev_443889.png
(原文件名:QQ截图未命名9.png)

looker 发表于 2009-5-10 19:36:45

编译GCC 但是在./configure是遇到如下问题。有点不明白已经安装了gpm和mpfr,怎么还是提示没有安装?
http://cache.amobbs.com/bbs_upload782111/files_14/ourdev_443890.png
(原文件名:QQ截图未命名10.png)

hzrobin 发表于 2009-5-10 23:18:40

期待下文~~

looker 发表于 2009-5-11 09:49:29

将/local/include和/local/lib下的文件拷贝到MinGW下的相应目录
即解决了上面的问题 configure通过 但是不知道有没有更好的解决办法
http://cache.amobbs.com/bbs_upload782111/files_14/ourdev_444053.png
(原文件名:QQ截图未命名11.png)

looker 发表于 2009-5-11 22:10:54

http://blog.csdn.net/hello_wyq/archive/2009/04/17/4088582.aspx

kanprin 发表于 2009-5-11 22:39:30

呵呵,在cygwin下编译过,不过都是人家写好了的配置文件configure,直接输入./configure后产生makefile文件,然后就可以直接make install了,简单的傻瓜式过程。其实需要升级gcc,可以直接把现成版本的gcc.exe拷到相应的bin目录下,覆盖当前的gcc.exe即可,这是我试过后得到的结论。关键是这个gcc.exe文件怎么来? 呵呵,多种途径找……

looker 发表于 2009-5-12 09:18:43

其实最简单的方法就是使用tdm 的mingw
但是傻瓜式编译也是一种过程~~
页: [1]
查看完整版本: 在Windows下编译GCC的过程,使用MinGW+Msys