【发布时间】:2016-03-03 17:37:48
【问题描述】:
我在 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/bin/gcc
我好像有一个gcc编译器,但是已经重定向到clang了?
【问题讨论】:
-
我最近在 OS X 10.9.5 下构建了 gcc-4.6.3,它几乎开箱即用。 gcc 构建的第 1 阶段在哪个编译器上运行?代码?我得到的印象是 gcc 4.6 对于 XCode 来说有点太旧了;我必须进行一些调整才能使其正常工作。 (尽管我遇到的错误与您显示的错误不同。)
-
与您不同的是,我给
configure提供的选项更少,基本上只是--prefix=/usr/local/gcc(因为我正在安装它)。我认为您不需要其他选项,除非您尝试构建交叉编译器。 (您是否正在尝试构建交叉编译器?) -
此外,gcc 构建说明说您应该不将构建目录放在解压缩的源目录中。 (我觉得这不仅仅是理论上的问题。)我建议从你的食谱中删除
cd gcc-4.6.1步骤,并将../configure更改为../gcc-4.6.1/configure。 -
@SteveSummit 我确实认为该选项是必要的,例如
--target=i386-jos-elf。我正在努力i386-jos-elf-gcc。 -
@SteveSummit 我正在尝试构建一个交叉编译器。检查the link:
The most difficult part of this process was figuring out how to compile gcc into an ELF cross compiler。但是,我不知道为什么我必须做这一切......
标签: macos gcc configuration cross-compiling