如何更改 mac 操作系统上的默认 CC 命令?

如何更改 mac 操作系统上的默认 CC 命令?
export PATH=./ndk_tools/bin/:${PATH}
export CC=arm-linux-androideabi-gcc
export CXX=arm-linux-androideabi-g++
echo \
"$CC"
CC --version

我使用该脚本来更改默认的 CC 命令,但它在 Mac 上不起作用。

打印:

Apple LLVM version 7.3.0 (clang-703.0.31)
Target: x86_64-apple-darwin15.6.0
Thread model: posix
InstalledDir:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

我的错在哪里?

答案1

在你的例子中

export PATH=./ndk_tools/bin/:${PATH}
export CC=arm-linux-androideabi-gcc
export CXX=arm-linux-androideabi-g++
echo \
"$CC"
CC --version

最后一行使用文字姓名 CC(通常是 C++ 编译器)而不是 shell多变的 $CC(这将使用您导出的环境变量)。

也许你的意思是

export PATH=./ndk_tools/bin/:${PATH}
export CC=arm-linux-androideabi-gcc
export CXX=arm-linux-androideabi-g++
echo \
"$CC"
$CC --version

您可能还想简单地通过在您的 上创建cc一个ndk_tools到该链接(名为“cc”)的符号链接来创建该PATH链接,但这会干扰编译器的本机使用。因此,环境变量(和选择性使用)是正确的选择。

在 makefile 中,您可以将此符号与括号或大括号一起使用,例如$(CC)${CC}。没有大括号,make会看到$CC,这不是你想要的。您可以通过多种方式在 makefile 中设置变量,例如:

make CC="$CC"
make -e

大多数时候我会直接使用该值由于使用基于 autoconf 或 imake 的构建,因此 makefile 中不存在导出变量。对于这些情况,导出变量就不那么重要了。

相关内容