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
会看到$C
C
,这不是你想要的。您可以通过多种方式在 makefile 中设置变量,例如:
make CC="$CC"
make -e
大多数时候我会直接使用该值在由于使用基于 autoconf 或 imake 的构建,因此 makefile 中不存在导出变量。对于这些情况,导出变量就不那么重要了。