介子构建系统 - 将编译器更改为 g++

Posted

技术标签:

【中文标题】介子构建系统 - 将编译器更改为 g++【英文标题】:Meson build system - change compiler to g++ 【发布时间】:2021-03-01 08:23:45 【问题描述】:

这是我的 meson.build

project('lab1', 'cpp',
        version: '0.1.5')

executable('lab1', 
           'main.cpp', 
           'Graph.cpp', 
           'Matrix.cpp', 
           'menuUtils.cpp',
           cpp_args : '-Wall'
          )

问题是:

Sanity check compile stderr:
c++: error: D:\Programming\?++ programming\Discrete-Math\lab1\builddir\meson-private\sanitycheckcpp.cc: Invalid argument
c++: fatal error: no input files
compilation terminated.

-----

meson.build:1:0: ERROR: Compiler c++ can not compile programs.

似乎介子正在尝试使用 Microsoft 编译器进行编译。我不想要它,我想将它更改为我通常使用的 g++。谷歌搜索后,我意识到我必须更改 CXX 变量,但我该怎么做呢?

【问题讨论】:

How do I do X in Meson @JHBonarius 我读过,但我还是不明白。 你设置CC了吗?见第一段。 “CC 指的是宿主平台的编译器,即用于编译运行在我们最终将安装项目的机器上的程序的编译器。” @JHBonarius 我应该在我的环境变量中设置它吗? 嗯,我不知道。我不知道你的系统、你的设置、你的后端、你的意图等。没有普遍的正确答案,它是具体的。我认为该站点上的文档非常好(例如Running Meson)。您应该阅读并按照步骤操作。 【参考方案1】:

首先,要将编译器更改为 g++,我添加了一个新的环境变量 CXX,其值为 g++。在 Windows 操作系统上,只需搜索 Edit the system environment variables,然后单击 Environment Variables

然后将CXX 设置为适当的值。

现在 CXX 已设置。

我的问题是:

Sanity check compile stderr:
g++: error: D:\Programming\?PP_programming\Discrete-Math\lab1\builddir\meson-private\sanitycheckcpp.cc: Invalid argument
g++: fatal error: no input files
compilation terminated.

就你所见,有一个“?”路径中的符号。最初我的路径如下所示:

所以介子以某种方式将“C”字母更改为“?”象征。这导致了一个问题。要解决此问题,只需重命名文件夹即可。

【讨论】:

以上是关于介子构建系统 - 将编译器更改为 g++的主要内容,如果未能解决你的问题,请参考以下文章

介子创建不会编译的构建文件

介子构建:手动添加可执行文件的依赖路径

Android Studio 使用 Gcc 编译,如何将其更改为 G++? (使用 CMake)

更改构建 c 编译器

介子找不到静态库

为啥 Typescript 编译器不会将 .ts 更改为 .js?