我需要编译Fortran-77子程序才能在iOS上访问。我正在使用带有DragonEgg插件的GCC,因此我可以将gfortran与LLVM后端一起使用。我跟着this answer但我在为armv7,armv7s和arm64构建 libgfortran 时遇到困难。
使用GCC使用arm-targets构建GCC我遇到了这些错误:
./configure --prefix=/tmp/out --host=arm-apple-darwin --enable-languages=fortran
make
…
make[2]: arm-apple-darwin-ar: No such file or directory
make[2]: *** [libiberty.a] Error 1
make[1]: *** [all-libiberty] Error 2
使用LLVM使用arm-targets构建GCC我遇到配置问题:
export CC="$(xcrun -sdk iphoneos -find clang)"
export CPP="$CC -E"
export CFLAGS="-arch armv7 -arch armv7s -arch arm64 -isysroot $(xcrun --sdk iphoneos --show-sdk-path) -miphoneos-version-min=9.2"
export AR=$(xcrun -sdk iphoneos -find ar)
export RANLIB=$(xcrun -sdk iphoneos -find ranlib)
export CPPFLAGS="-arch armv7 -arch armv7s -arch arm64 -isysroot $(xcrun --sdk iphoneos --show-sdk-path) -miphoneos-version-min=9.2"
export LDFLAGS="-arch armv7 -arch armv7s -arch arm64 -isysroot $(xcrun --sdk iphoneos --show-sdk-path)"
./configure --prefix=/tmp/out --enable-languages=fortran --host=arm-apple-darwin --disable-shared
…
checking how to run the C preprocessor... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -E
configure: error: in `/Users/timo/temp/gcc-4.8.5-build/fixincludes':
configure: error: C preprocessor "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -E" fails sanity check
See `config.log' for more details.
make[1]: *** [configure-fixincludes] Error 1
配置脚本说明了
configure: WARNING: If you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used.
答案 0 :(得分:1)
您正在尝试构建没有交叉binutils的跨gcc库。 Here是一个很好的手册,用于构建交叉gcc,你可以遵循它。
如果检测到交叉编译器是什么意思?我该如何定义 目标平台是否正确?
配置时,您还应设置--target=arm-apple-darwin
。 (根据我自己的经验,我根本没有设置--host
make[2]: arm-apple-darwin-ar: No such file or directory
在构建arm交叉编译器目标库之前,您应该为此目标构建binutils。
对llvm一无所知。
所以,只需尝试在上面的链接中完成所有步骤。