如何在VS代码中设置CXX编译器?

问题描述 投票:0回答:1
I将带有VS代码的项目加载到Linux服务器上,并与

cmake

一起遇到了以下错误。 (来自
cmake
扩展。)

Tell CMake where to find the compiler by setting either the environment variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH.
然后,安装了
g++-14

gcc-14
。这没有解决问题。 然后,安装了
build-essential

系统上的默认编译器是GCC版本13.

gcc-13
重新加载VS代码窗口后,不再抱怨。但是,正在使用错误的编译器版本。 (我知道正在使用错误的版本,因为我可以从命令行构建项目,但是VS代码中的Linter抱怨丢失的路径包括路径。)
我该怎么做才能正确设置CXX编译器?
我应该修改cmakelist.txt文件吗?
我应该在VS代码中更改一些配置吗?

注意,最终构建是在Docker容器内完成的,并且容器中的默认编译器版本是版本14。这就是为什么命令行脚本成功的原因,但是VS Code Linter认为有包括路径错误。

我必须做很多事情才能使这个工作。

g++-13

注:因为我是通过

apt

进行远程开发,所以我需要修改远程版本

$ gcc --version Version 13... $ g++ --version Version 13...

.

cmake

第二,在
c++ visual-studio-code cmake
1个回答
0
投票

ssh

这给出了关于编译器正在使用的提示。
settings.json
{
  "cmake.configureSettings": {
    "CMAKE_C_COMPILER": "/usr/bin/gcc-14",
    "CMAKE_CXX_COMPILER": "/usr/bin/g++",
    "CMAKE_BUILD_TYPE": "Debug"
  }
}
您还可以检查视图 - >输出,然后从下拉列表中选择CMAKE。查找显示使用哪个编译器的日志消息。
三分之二,在我的
CMakePresets.json
中,我需要添加此

{
  "version": 3,
  "configurePresets": [
    {
      "name": "remote gcc",
      "displayName": "Remote gcc",
      "description": "Use Remote GCC toolchain",
      "generator": "Unix Makefiles",
      "binaryDir": "${sourceDir}/out/build/${presetName}",
      "cacheVariables": {
        "CMAKE_CXX_STANDARD": "23",
        "CMAKE_C_COMPILER": "/usr/bin/gcc-14",
        "CMAKE_CXX_COMPILER": "/usr/bin/g++-14",
        "CMAKE_BUILD_TYPE": "Debug"
      }
    }
  ],
  "buildPresets": [
    {
      "name": "remote-gcc",
      "configurePreset": "remote-gcc"
    }
  ]
}

技术上,这与VS代码和Intellisense问题分开,但值得一知道。

五,您可能需要删除构建缓存。 (输出目录。)
您可以手动或使用

cmake
“ cmake:删除缓存和重新配置”。
第五:创建
cat build/CMakeCache.txt | grep -i compiler

# example output...
CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/g++
CMAKE_C_COMPILER:FILEPATH=/usr/bin/gcc

open命令pelette

搜索“ C/C ++:编辑配置(UI)”。
SET:

INTELLISENSE模式→“ Linux-GCC-X64”

Compiler路径→“/usr/bin/g ++ -14”

C++标准→“ C ++ 23”

SAVE和重新启动与代码。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.