免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3862 | 回复: 4
打印 上一主题 下一主题

编译gcc4.2.0遇到些问题,希望高手指教。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-14 23:38 |只看该作者 |倒序浏览
编译这个主要是想编译arm交叉编译工具链,网上说这个东西非常难以成功,一直没敢试。
当然,凡是要从简单的来,所以先编译个native compiler。

我只下了四个包,gcc, gcc-core, gcc-g++, gcc-test。
发问:我只需要处理c语言,不知道这是个够否?编译出来会不会缺什么东西?

第一次没做任何配置,全部缺省。不知道花了多久,下班走人让他自己搞。第二天看编译成功。
gcc可以用,由于不想装到系统目录,没有make install。

第二次,依照gcc文档推荐。srcdir和objdir分开。并在objdir下建立一个目录作为安装目录(prefix选项)
将prefix目录作为objdir目录的子目录也是gcc文档推荐的。结果编译失败,stage2和stage3 compare
failed。重试三次(先clean distclean了所以东西,还有一次是删掉源目录重新解压),结果相同。

第三次,将prefix目录移出作为单独目录,不作为objdir的子目录。结果同上。

第四次,不将srcdir和objdir分开。直接在源码根目录下做,同第一次,只是多配置了个prefix目录。
make install之后,安装目录下啥都有,像模像样。不知道缺啥。
再次请问下,是不是gcc编译时srcdir和objdir不能分开啊?那那个gccinstall.info文档不是忽悠我们?
哪位搞过?

比较了一下RHEL3自带的gcc -v。发现他enable了好多东西。我生成的这个就一个光秃秃的--prefix。
三问:这样编译器是不是会少很多功能?

接着,测试编译结果。编译openssl。编译成功,生成的openssl工具似乎可以用。
但是make test时,报错。
这个openssl用RHEL3自带的gcc(v3.2)编译是没有问题的,make test也可以通过。
请问:这个有没有可能和config选项有关?应用软件挑编译器版本的情况多不多(我自己觉得不多)?

论坛徽章:
0
2 [报告]
发表于 2007-06-21 09:27 |只看该作者

gcc-4.2的编译问题

在编译GCC的过程中,最好应该把build目录、install目录与source目录分开。在GCC4.0以前的版本如果在源代码目录下编译不会出错,但是4.0以后因为修改了编译脚本,可能会出现莫名其妙的错误。
对于定制GCC支持的源语言类型,最好是下载GCC的完整程序包,通过编译选项--enable-languages=来指定,比如要支持c和C++,那么可以通过选项--enable-languages=c,c++来指定。
如果只make,而没有make install,那么在prefix指定的目录下就不会有任何文件,包括GCC的库文件也不会安装到指定安装目录。如果要支持某些特殊功能,那么就要仔细查阅GCC的帮助文档。推荐一个网址:http://gcc.gnu.org/onlinedocs/gccint/
make test出错可能和版本有关,毕竟3.2和4.2之间改动了很多。也不排除是4.2某个bug导致的。

[ 本帖最后由 flying_insky 于 2007-6-21 11:19 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2007-07-03 13:47 |只看该作者
我在win2000下编译过一次,自己建的安装目录。我的版本是4.1.1,解压包的install目录下有各种文档,可以参考一下。编译失败要看具体的原因,过程中应该有提示。
C:\Documents and Settings\Administrator>gcc -v
Using built-in specs.
Target: mingw32
Configured with: ../gcc-4.1.1/configure --prefix=/mingw --host=mingw32 --target=
mingw32 --disable-shared --with-gnu-as --with-gnu-ld --enable-threads --enable-l
anguage=c,c++ --disable-libada --with-dwarf2 --disable-win32-registry --disable-
nls : (reconfigured) ../gcc-4.1.1/configure --prefix=/mingw --host=mingw32 --tar
get=mingw32 --disable-shared --enable-threads --enable-language=c,c++ --disable-
libada --with-dwarf2 --disable-win32-registry --disable-nls --with-gc : (reconfi
gured) ../gcc-4.1.1/configure --prefix=/mingw --host=mingw32 --target=mingw32 --
disable-shared --enable-threads --enable-language=c,c++ --disable-libada --with-
dwarf2 --disable-win32-registry --disable-nls
Thread model: win32
gcc version 4.1.1
这是我的gcc,configure过好几次,编译过程中主要是ld的路径错误,后来自己指定的。几个月了,一直在win下工作还算正常。

论坛徽章:
0
4 [报告]
发表于 2007-07-03 17:55 |只看该作者
你这样编真的太麻烦了。
看看这个网址:
http://kegel.com/crosstool/cross ... rosstool-howto.html
我就是用这个工具直接编译出来的。
如果你的网络好,执行脚本后3个小时自己就出来arm工具链了。

如果您自己下载所需的软件包到适当的目录会更快。
要求用非root用户执行。

论坛徽章:
0
5 [报告]
发表于 2007-07-06 20:19 |只看该作者
楼主可以看看linux LFS
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP