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
第二,在
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和重新启动与代码。