makefile 中的多个 gcc 版本

Posted

技术标签:

【中文标题】makefile 中的多个 gcc 版本【英文标题】:multiple gcc versions in makefile 【发布时间】:2015-12-13 07:39:55 【问题描述】:

在我的 Makefile 我有

CC=g++

当我执行 mgrep gcc 时,我列出了几个版本,例如: gnu/gcc/4.2.1 gnu/gcc/4.7.3 等等

我可以加载模块来更改我的 gcc 版本。

现在假设我想在不同的 makefile 中同时使用多个版本,我该怎么做?

【问题讨论】:

【参考方案1】:

模块系统基本上只是设置请求模块的路径。如果你想在特定的 makefile 中使用特定的编译器,那么你可以做三件事:

    期望 makefile 的用户在调用 Make 之前加载正确的版本。可能结合基于gcc -v|grep $GCC_VERSION 的某些条件来检查它是否是正确的版本。 在您的 makefile 中执行 module load gnu/gcc/$GCC_VERSION。 使用CC=/somewhere/path-to-gcc-version/bin/g++ 而不是CC=g++

我个人更喜欢1或3。你可以通过module load ...然后which g++找出路径是什么。

[顺便说一下,我会使用 CXX=g++CC=gcc - 假设您没有将名为 *.c 的文件编译为 C++ 代码]

【讨论】:

我尝试了方法 3。“哪个 gcc”给了 /A/B/C/D/bin/gcc。所以我尝试了 CC=/A/B/C/D/bin/gcc。我有一个错误。 make:/A/B/C/D/bin/gcc : 找不到命令 对不起,我打错了。

以上是关于makefile 中的多个 gcc 版本的主要内容,如果未能解决你的问题,请参考以下文章

linux里面的make和makefile是做啥的?

make / gcc:“错误构建”的可能原因是啥? [关闭]

内核模块makefile中提到的gcc版本

打印当前commit-id版本号

gcc和make的区别

cmake 指定gcc 版本的方式