我在OS X上为MIT xv6安装gcc 4.6.1
:
tar xjf gcc-core-4.6.1.tar.bz2
cd gcc-4.6.1
mkdir build
cd build
../configure --prefix=/usr/local \
--target=i386-jos-elf --disable-werror \
--disable-libssp --disable-libmudflap --with-newlib \
--without-headers --enable-languages=c
在make all-gcc
:
gtype-desc.c:8838:18: error: subscripted value is not an array,
pointer, or vector
sizeof (x_rtl[0]),
~~~~~^~
gtype-desc.c:8957:36: error: subscripted value is not an array,
pointer, or vector
sizeof (default_target_libfuncs[0]),
~~~~~~~~~~~~~~~~~~~~~~~^~
gtype-desc.c:9041:31: error: subscripted value is not an array,
pointer, or vector
sizeof (default_target_rtl[0]),
~~~~~~~~~~~~~~~~~~^~
gtype-desc.c:9062:31: error: subscripted value is not an array,
pointer, or vector
sizeof (default_target_rtl[0]),
~~~~~~~~~~~~~~~~~~^~
gtype-desc.c:9069:31: error: subscripted value is not an array,
pointer, or vector
sizeof (default_target_rtl[0]),
~~~~~~~~~~~~~~~~~~^~
gtype-desc.c:9076:31: error: subscripted value is not an array,
pointer, or vector
sizeof (default_target_rtl[0]),
~~~~~~~~~~~~~~~~~~^~
68 warnings and 6 errors generated.
make[1]: *** [gtype-desc.o] Error 1
make: *** [all-gcc] Error 2
make install-gcc
,make all-target-libgcc
和make install-target-libgcc
以及i386-jos-elf-gcc -v
显示command not found
也有错误。
我该怎么做才能解决这个问题?是否有使用命令i386-jos-elf-gcc
的替代方法?
gcc --version
配置: - prefix = / Applications / Xcode.app / Contents / Developer / usr --with-gxx-include-dir = / usr / include / c ++ / 4.2.1
Apple LLVM版本6.1.0(clang-602.0.49)(基于LLVM 3.6.0svn)
目标:x86_64-apple-darwin15.3.0
线程模型:posix
>
>
哪个gcc
的/ usr /斌/ GCC
似乎我有一个gcc编译器,但是它被重定向到clang?
答案 0 :(得分:0)
[这不是一个完整的答案。]
首先,请参阅Building GCC on OS X 10.11的答案。
第二:如果您正在尝试构建交叉编译器,强烈建议您首先引导本机版本的gcc。另请参阅"构建交叉编译器"在INSTALL/build.html
。我用--prefix=/usr/local/gcc
构建了我的,因此我的原生gcc最终在/usr/local/gcc/bin/gcc
。然后我将/usr/local/gcc/bin
添加到了$PATH
,并摆脱了/usr/bin/gcc
和/usr/bin/g++
以保证安全。
正如build.html
指出的那样,您还需要一个交叉汇编程序"和#34;交联剂"。因此,您通常需要下载适当版本的binutils,并在尝试构建交叉编译器之前构建。 (这是第一步,我自己,目前仍在坚持。我稍后可能会对此有更多的评论。)
最后,如果您发现构建失败,因为您对其进行了不正确的配置,以至于您必须使用不同的选项重新运行configure
,则删除整个构建目录并从头开始会更安全。有时配置和构建系统,但似乎不是100%可靠,在这种情况下检测可能需要重建的内容。 (删除和重新开始是令人沮丧的,我同意,但同样,从长远来看,它确实可以节省时间。)
答案 1 :(得分:0)
我现在也在为MIT xv6安装gcc 4.6.1
,但在Ubuntu上。我不知道你是否看到了这个:
MAC OS X 10.7 "LION" NOTE: The default clang compiler on Mac OS X 10.7
cannot build a working version of GCC. Use the following configure
line to work around the problem (this has reported to work with OS X 10.9.4 withXCode 5.1.1 and its Command Line Tools package (for gcc):
../configure --prefix=/usr/local \
--target=i386-jos-elf --disable-werror \
--disable-libssp --disable-libmudflap --with-newlib \
--without-headers --enable-languages=c \
CC=/usr/bin/gcc-4.2 \
我从this page复制了它。(但我认为没有必要使用该命令,因为你说事情很好。)
如果您仍然遇到此问题,this page可能会给您一些提示。在Mac上,使用工具或命令mdfind
查找文件gengtype.c
的位置,并修改其在该页面上提到的代码。我希望你能解决它。