如何影响 CMake 等构建系统选择哪个编译器

如何影响 CMake 等构建系统选择哪个编译器

我在 Archx64 上使用 bspwm 作为 WM。我安装了 gcc 和 clang 并更新到最新版本。我希望构建系统每次都询问我选择 g++ 还是 clang ++ 进行编译。

我需要 clang++ 作为我自己的东西的默认编译器,但我有 cmake 通常会自己选择编译器。所以我将Cand导出CXX为 clang 和 clang++ 中的.bashrc.一切都按预期运行良好,但是当我需要使用 g++ 编译某些内容并且程序查找/usr/bin/c++并找到 clang++ 而不是 g++ 时,问题就出现了。我需要,每次某个程序尝试编译其内容时,它都可以事先询问我要使用哪个编译器。是否可以?

我当前的方法是每次导出并重新启动我的机器:p这是非常愚蠢的。

答案1

没有真正的普遍答案。如果某个工具坚持使用某个工具,它就会这样做。

如果设置环境变量适合您,则无需重新启动。您可以像这样简单地调用您的命令:

CXX=g++ cmake ...

这将运行 cmake,并将 CXX 环境变量设置为 g++。


如果您确实想要执行您要求的操作,则可以/usr/bin/c++通过要求所需编译器的 shell 脚本替换(或您的工具所需的任何命令),然后调用该编译器。 - 但如果您决定走那条路,请务必确定您知道自己在做什么。

相关内容