【发布时间】:2011-12-03 05:56:33
【问题描述】:
有没有办法指定 gmake 一个备用编译器目录。即:我安装了多个编译器,并在编译时尝试使用备用 gcc。
如果我指定它使用新指定的 gcc。
gmake CC=/opt/crosstool/gcc-3.2.2-glibc-2.2.5/i686-unknown-linux-gnu/i686-unknown-linux-gnu/bin/gcc
CXX=/opt/crosstool/gcc-3.2.2-glibc-2.2.5/i686-unknown-linux-gnu/i686-unknown-linux-gnu/bin/g++
LD=/opt/crosstool/gcc-3.2.2-glibc-2.2.5/i686-unknown-linux-gnu/i686-unknown-linux-gnu/bin/gcc
AR=/opt/crosstool/gcc-3.2.2-glibc-2.2.5/i686-unknown-linux-gnu/i686-unknown-linux-gnu/bin/ar
我要避免的是为所有工具指定绝对路径。我正在尝试类似的东西
gmake COMPILER_DIR=/opt/crosstool/gcc-3.2.2-glibc-2.2.5/i686-unknown-linux-gnu/i686-unknown-linux-gnu/
这也可能适合作为交叉编译器问题。
【问题讨论】:
-
这完全取决于您的makefile,以及它如何组装编译器命令。我们不能说太多,因为我们不知道。
-
我认为您可以可靠地做到这一点。 Makefile,至少就变量名而言,是基于convention,并不是每个 Makefile 作者都遵守(不幸的是)。但即便如此,工具的约定也没有说明你试图实现的目标。考虑为您的目的编写一个包装 Makefile 或 shell 脚本。喜欢
DIR=/opt/crosstool/gcc-3.2.2-glibc-2.2.5/i686-unknown-linux-gnu/i686-unknown-linux-gnu/bin/ && make CC=$DIR/gcc CXX=$DIR/g++ LD=$DIR/ld AR=$DIR/ar
标签: c++ cross-compiling gnu-make