Rap*_* R. 5 compiling 11.10 gcc application-development
周一,我已从 Ubuntu 11.04(我的初始安装)升级到 11.10,现在我无法再从源代码构建 gcc。由于我在升级前忘记卸载 gcc 包,Ubuntu 用稳定的 4.6.1 替换了我的 4.7.0 编译器。所以我尝试再次构建 SVN 源代码,但失败了。我最近尝试过 SVN 修订版 180193。
一段时间后,构建失败并显示以下消息:
/home/raphael/devel/gcc/build/./gcc/xgcc -B/home/raphael/devel/gcc/build/./gcc/ -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem /usr/i686-pc-linux-gnu/include -isystem /usr/i686-pc-linux-gnu/sys-include -g -O2 -O2 -I. -I. -I../../src/gcc -I../../src/gcc/. -I../../src/gcc/../include -I../../src/gcc/../libdecnumber -I../../src/gcc/../libdecnumber/bid -I../libdecnumber -I../../src/gcc/../libgcc -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -I. -I. -I../.././gcc -I../../../src/libgcc -I../../../src/libgcc/. -I../../../src/libgcc/../gcc -I../../../src/libgcc/../include -I../../../src/libgcc/config/libbid -DENABLE_DECIMAL_BID_FORMAT -DHAVE_CC_TLS -DUSE_TLS -o _ashldi3.o -MT _ashldi3.o -MD -MP -MF _ashldi3.dep -DL_ashldi3 -c ../../../src/libgcc/../gcc/libgcc2.c \
-fvisibility=hidden -DHIDE_EXPORTS
In file included from /usr/include/stdio.h:28:0,
from ../../../src/libgcc/../gcc/tsystem.h:88,
from ../../../src/libgcc/../gcc/libgcc2.c:29:
/usr/include/features.h:323:26: fatal error: bits/predefs.h: File or directory not found.
Run Code Online (Sandbox Code Playgroud)
我已经将它与:
~/devel/gcc/build$ ../src/configure --prefix=/usr --enable-languages=c++
Run Code Online (Sandbox Code Playgroud)
并使用:
~/devel/gcc/build$ make -j4
Run Code Online (Sandbox Code Playgroud)
可以肯定的是,我rm -rf * 在构建目录中做了一个,以防里面有一些损坏的东西。没有帮助,虽然。
这就是背景故事。我试图修复它并搜索bits/predefs.h. 它在里面/usr/include/i386-linux-gnu。我暂时解决了这个问题
~/devel/gcc/build$ C_INCLUDE_PATH=/usr/include/i386-linux-gnu make -j4
Run Code Online (Sandbox Code Playgroud)
这只是暂时的,因为现在 gcc 抱怨它找不到crti.o.
我可以在/usr/lib/i386-linux-gnu. 现在我也可以设置- 实际上它不起作用 - 但我觉得我在这里与系统作斗争。此外,即使它成功了,我新构建的编译器也不会知道这些C_LIBRARY_PATHi386-linux-gnu东西。所以我会集C_LIBRARY_PATH和C_INCLUDE_PATH每一个项目我的每一个构建之前。我可以将它添加到我的 .bashrc 中,但这会更加颠覆系统。
那么,我如何告诉构建过程:
编辑:我忘记包含导致上述错误消息的命令。我也能想到另一种解决办法的:东西从复制/usr/include/i386-linux-gnu到/usr/include(同样的事情/usr/lib/i386-linux-gnu到/usr/lib)。但这也感觉不对。最后,系统的 gcc 4.6.1 可以很好地编译其他应用程序,除了我的,它使用 4.6 系列中没有的 C++11 特性。
| 归档时间: |
|
| 查看次数: |
6775 次 |
| 最近记录: |