【发布时间】:2020-04-14 21:16:38
【问题描述】:
我想使用一些 Mac 的 clang 目前不支持的 C++17 功能,所以我使用了
brew install gcc --HEAD
安装 g++ 10.0.1 版本。直接调用代码在终端运行良好
g++-HEAD -std=c++17 test.cpp
我还在bash中创建了一个链接ln -s g++-HEAD g++,并在.bash_profile中添加了一个别名alias g++='g++ -std=c++17',这样
g++ test.cpp
会做同样的工作。
我想在 Visual Studio Code - Mac 版本中运行 C++ 代码。在安装了微软的 C/C++ Extension 和 Code Runner Extension 之后,我在 VSCode 中设置了 settings.json 文件以包含编译器参数:
{
"C_Cpp.default.cppStandard": "c++17",
"C_Cpp.default.compilerPath": "/usr/bin/g++",
"C_Cpp.default.intelliSenseMode": "gcc-x64",
"C_Cpp.default.compilerArgs": [
"-std=c++17"
]
}
然后我尝试运行相同的代码。但是,我收到了警告:
[Running] cd "/some directory/" && g++ test.cpp -o test && "/some directory/"test
warning: fold-expressions only available with '-std=c++17' or '-std=gnu++17'
显然,这意味着在 VSCode 中运行的 g++ 编译器不是我手动设置的别名。更有趣的是,如果我直接在 VSCode TERMINAL 中运行,我之前的代码
g++ test.cpp -o test
有效。
我对 VSCode 中的设置感到困惑:为什么跑步者不使用与 VSCode 自己的终端中使用的相同的 g++ 编译器参数?另外,我应该如何修改settings.json文件或VSCode中的一些其他文件,以便我可以正确添加-std=c++17参数?
【问题讨论】:
-
我在 Makefile 中设置了我的。对于您来说,这可能是更具可扩展性的方法。然后你可以简单地在一个任务中运行“make”。它会更干净,更容易管理:)
-
@Pnelego 您想分享一下如何设置 Makefile 并使用一些热键在 VSCode 中运行的经验吗?
标签: c++ visual-studio-code parameter-passing