gpt4 book ai didi

c++ - Visual Studio Code - 包含路径问题头文件 C++ (MinGW)

转载 作者:行者123 更新时间:2023-12-03 07:03:25 29 4
gpt4 key购买 nike

我对 C++ 编程还很陌生,所以请不要在设置“Visual Studio Code”环境时判断我的问题。我正在尝试使用 blaze 数学包来解决二次规划问题。使用 MinGW GCC,我可以通过 cmd 成功编译 blaze 的测试文件,因此我想将 GCC 用于 VS Code。
操作系统:Windows 10.0.19041
GCC: gcc (x86_64-posix-seh-rev0, 由 MinGW-W64 项目构建) 7.3.0 || (cmd: gcc --version)
VS 代码扩展:C/C++ 0.27.1
首先,我浏览了 MinGW 的 VS Code 教程:
https://code.visualstudio.com/docs/cpp/config-mingw
这很好用,所以我可以轻松编译我的 helloworld.cpp。生成的 tasks.json 文件如下所示
tasks.json .
作为我的包管理器(对于 blaze 或其他包),我使用 vspkg-git:
https://docs.microsoft.com/en-us/cpp/build/vcpkg?view=msvc-160
因此,我在 Windows 上编程我不能使用“integrate”命令将路径添加到包含路径。所以我必须手动执行此操作。
我的包在具有绝对路径的文件夹中

C:\Users\Johannes\Desktop\Masterthesis\vcpkg\vcpkg\packages
所以我在“c_cpp_propertier.json”文件中添加了路径
{
"configurations": [
{
"name": "GCC",
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64",
"includePath": [
"${workspaceFolder}",
"C:/Users/Johannes/Desktop/Masterthesis/vcpkg/vcpkg/packages/**"
],
"compilerPath": "C:/Program Files/mingw-w64/x86_64-7.3.0-posix-seh-rt_v5-rev0/mingw64/bin/g++.exe",
"browse": {
"path": []
}
}
],
"version": 4
}
在文件夹中有几个包,因此我在路径末尾添加了“/**”以启用对头文件的递归搜索。
我的“helloworld.cpp”文件看起来像这样
#include <iostream>
#include <vector>
#include <string>
//#include <blaze/Math.h>

using namespace std;

int main()
{
vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the
C++ extension!"};

for (const string& word : msg)
{
cout << word << " ";
}
cout << endl;
}
我的问题是,当我尝试从该路径中包含头文件时 for example Math.h Visual Studio 引发错误
blaze/Math.h: No such file or directory
但是当我右键单击包含并单击“转到定义”时,VS Code 会打开该文件。 Optionbaropened file .
日志诊断给出 that information .
我想有使用 MinGW 和 VS Code 中的附加包经验的人会非常简单地解决这个问题,但我已经阅读了几乎所有关于这些问题的帖子,但没有找到任何与我匹配的内容。

最佳答案

好的,我得到了答案。 “c_cpp_properties.json”文件的包含路径仅适用于 IntelliSense。这意味着 Visual Studio Code 会找到这个包,并且 IntelliSense 会建议你从路径中获得可用的 header 。这并不意味着编译器可以找到这些路径。因此,您必须将路径添加到“tasks.json”文件中。正如您在上面“tasks.json”文件的照片中所看到的,有一个名为“args”的字段,意思是“参数”。这些是编译器参数。您还必须以“-I”、“C:/PathYouWishToAdd”格式添加路径。这工作正常!!
changed tasks.json file

关于c++ - Visual Studio Code - 包含路径问题头文件 C++ (MinGW),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64589095/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com