即使选择了默认的苹果 llvm 5.0,XCode5 也使用 gcc48

Posted

技术标签:

【中文标题】即使选择了默认的苹果 llvm 5.0,XCode5 也使用 gcc48【英文标题】:XCode5 uses gcc48 even if default apple llvm 5.0 selected 【发布时间】:2013-11-09 16:07:09 【问题描述】:

在安装 xcode 5、gcc4.8 (with homebrew) 和 xcode 命令行工具后,ide 尝试使用 /usr/local/bin/gcc-4.8 并失败并出现退出代码 1,即使在构建选项中也是如此选择了“默认编译器(Apple LLVM 5.0)”。 请帮忙。

【问题讨论】:

【参考方案1】:

在 mi Lion homebrew 上构建失败,但我使用 Apple llvm-gcc42 使用此配置构建:

成功gmp:

CFLAGS="-m32 -m64" CPPFLAGS="-m32 -m64" CXXFLAGS="-m32 -m64" LFLAGS="-m32 -m64" LDFLAGS="-m32 -m64" ./configure   --prefix=/usr/local   --enable-cxx --build=x86_64-apple-darwin --host=none-apple-darwin --enable-fat=yes

成功mpfr:

CFLAGS="-m32 -m64" CPPFLAGS="-m32 -m64" CXXFLAGS="-m32 -m64" LFLAGS="-m32 -m64" LDFLAGS="-m32 -m64" ./configure   --prefix=/usr/local --build=x86_64-apple-darwin --host=none-apple-darwin

成功的mpc:

CFLAGS="-m32 -m64" CPPFLAGS="-m32 -m64" CXXFLAGS="-m32 -m64" LFLAGS="-m32 -m64" LDFLAGS="-m32 -m64" ./configure   --prefix=/usr/local --build=x86_64-apple-darwin --host=none-apple-darwin

成功之道:

CFLAGS="-m32 -m64" CPPFLAGS="-m32 -m64" CXXFLAGS="-m32 -m64" LFLAGS="-m32 -m64" LDFLAGS="-m32 -m64" ./configure   --prefix=/usr/local --build=x86_64-apple-darwin --host=none-apple-darwin   --enable-portable-binary

成功之道:

CFLAGS="-m32 -m64" CPPFLAGS="-m32 -m64" CXXFLAGS="-m32 -m64" LFLAGS="-m32 -m64 -L/usr/local/lib" LDFLAGS="-m32 -m64 -L/usr/local/lib" ./configure   --prefix=/usr/local --build=x86_64-apple-darwin --host=none-apple-darwin   --enable-portable-binary  --with-isl-prefix=/usr/local

成功 gcc 4.8.1:

./configure  --prefix=/usr/local --enable-languages=c,c++,objc,obj-c++  --build=x86_64-apple-darwin  --target=x86_64-apple-darwin --with-system-zlib  --enable-multilib  --enable-objc-gc  --enable-lto  --enable-ld=yes  --enable-bootstrap --enable-gold=yes CC="/usr/bin/gcc" CXX="/usr/bin/g++" CFLAGS="-mmacosx-version-min=10.5" CXXFLAGS="-mmacosx-version-min=10.5" CPPFLAGS="-mmacosx-version-min=10.5" OBJCFLAGS="-mmacosx-version-min=10.5" OBJCXXFLAGS="-mmacosx-version-min=10.5" LFLAGS="-mmacosx-version-min=10.5" LDFLAGS="-mmacosx-version-min=10.5"

您需要下载所有源代码,不要使用任何 macports 和 brew。

Ypu 可以使用来自 http://chomikuj.pl/ydk2/wxwidgets+Mac+OS+X/wxphp/main.wxphp.app.bundle.10.6.i386,3523603473.zip 的 gcc-4.8.1 检查构建程序,这只是我的测试构建,但检查了 L 和 ML。

编辑... 之后你可以尝试添加 ~/.profile:

alias gcc=/usr/local/bin/gcc
alias cc=/usr/local/bin/gcc
alias g++=/usr/local/bin/g++
alias c++=/usr/local/bin/c++
export CC=/usr/local/bin/gcc
export CXX=/usr/local/bin/g++   
export PATH=/usr/local/bin:/usr/local/sbin:/opt/local/bin:/opt/local/sbin:/usr/bin:/usr/sbin:$PATH

/opt/bin 是可选的,前提是你有一个二进制文件。 但是首先需要在 /usr/local/bin 中安装 gcc,如果首先添加 /usr/bin,则 /usr/bin/gcc 用于命令 gcc

对于 Apple gcc simple in shell:

export CC=/usr/bin/gcc
export CXX=/usr/bin/g++
export CPP=/usr/bin/cpp
export LD=/usr/bin/ld
alias c++=/usr/bin/c++
alias g++=/usr/bin/g++
alias gcc=/usr/bin/gcc
alias cpp=/usr/bin/cpp
alias cc=/usr/bin/cc

【讨论】:

以上是关于即使选择了默认的苹果 llvm 5.0,XCode5 也使用 gcc48的主要内容,如果未能解决你的问题,请参考以下文章

LLVM 5.0 编译器是不是等同于 GCC 编译器?

如何从 LLVM 5.0 中的 TargetMachine 获取 DataLayout?

在苹果电脑上运转C言语程序

使用 iOS 5.0 Beta 版本在 Xcode 4.2 中创建 IPA 文件

构建时出现 Apple LLVM 5.0 错误

XCode 编译器 Apple LLVM 3.1 与 LLVM GCC 4.2