【发布时间】:2011-02-27 11:50:40
【问题描述】:
如何在不手动编辑 makefile 的情况下让 GNU Make 使用不同的编译器?
【问题讨论】:
如何在不手动编辑 makefile 的情况下让 GNU Make 使用不同的编译器?
【问题讨论】:
可以设置环境变量CC和CXX,分别用于编译C和C++文件。默认情况下,它们使用值 cc 和 g++
【讨论】:
你应该可以做这样的事情:
make CC=my_compiler
这是假设编写 Makefile 的人使用了变量 CC。
【讨论】:
CC、GCC、CCX等...但是,如前所述,必须阅读Makefile才能查看使用了哪些变量(以及如果它是 C++ 或 C)。刚刚在使用 Makefile 时遇到了这个答案,该 Makefile 检查您是否使用GCC(例如make GCC=gcc-6)并打印一条错误消息,要求改用HOST_COMPILER(例如make HOST_COMPILER=g++-6 vs 我的默认值g++ ,这是较新的 v7)(仅供参考,它是 Nvidia CUDA 样本)。
如果 makefile 像大多数 makefile 一样编写,那么它在希望调用 C 编译器时使用$(CC)。无论如何,这就是内置规则的作用。如果您为该变量指定不同的值,则 Make 将使用该值。您可以在命令行上提供一个新值:
你也可以在运行configure时指定:
配置脚本会将新的CC 值合并到它生成的makefile 中,因此您无需手动对其进行编辑,之后您可以自行运行make (而不是每次都在命令行上给出自定义的CC 值)。
【讨论】:
许多 makefile 使用“CC”来定义编译器。如果你有,你可以override that variable 使用
make CC='/usr/bin/gcc'
【讨论】:
使用变量作为编译程序名称。
要么将新定义传递给make 实用程序,要么在构建之前将它们设置在环境中。
【讨论】: