我遇到了一个问题,VSCode 会识别我包含的 zipper.h,然后突然出现在我身上并告诉我没有这样的文件或目录。我不确定这是否是我的代码或包含或 vs 代码的问题。
https://i.gyazo.com/2d35a31abf83546d8633d991bcb4752a.png https://i.gyazo.com/96ad7825e8d1c390035a4db2f789bbcf.png
我已经尝试将它添加到我的包含路径和 Windows 环境路径中。由于同样的原因,它一直失败。我对自己做错了什么感到非常困惑。它不识别这些链接吗?编译时是否应该通过 g++ 链接库?
#include <zipper.h>
void zipFolder()
{
zipper::Zipper zipFile("logs.zip");
zipFile.add("C:\\Cycling");
zipFile.close();
}
int main(int argc, char const *argv[])
{
return 0;
}
c:\Users\Desk\Desktop\Code\Cycling>cd "c:\Users\Desk\Desktop\Code\Cycling\" && g++ test.cpp -o test && "c:\Users\Desk\Desktop\Code\Cycling\"test
test.cpp:1:10: fatal error: zipper.h: No such file or directory
#include <zipper.h>
^~~~~~~~~~
compilation terminated.
原文由 SomeSimpleton 发布,翻译遵循 CC BY-SA 4.0 许可协议
你没有告诉你的编译器任何关于一个名为 Zipper.h 的文件或它的位置,或任何与它相关的东西。 “g++ test.cpp -o test”只是告诉编译器编译一个名为 test.cpp 的源文件并链接它。您必须了解 Visual Studio Code 不是 IDE,不能自行编译。您应该在 .vscode 目录中有一个名为 c_cpp_properties.json 的文件。例如,我使用的那个看起来像这样,并且配置为 mingw64。
这告诉 Visual Studio Code 你的源文件和库在哪里。这就是用于 IntelliSense(语法高亮、错误曲线、代码完成等)的内容。但是,这与构建您的项目绝对无关。您的编译器现在不知道您在 Visual Studio Code 中设置的包含路径。所以要编译你的项目,你必须告诉你的编译器他需要知道的一切。 Visual Studio Code 只执行您在任务中指定的内容。这与进入该目录并在命令提示符中键入相同的内容相同。因此,我建议您阅读如何使用 g++ 编译 c++ 项目,您的问题与 Visual Studio Code 完全无关。如果您打算做一些比单个源文件更大的事情,我强烈建议您学习 CMake。一旦你有更多的源文件和包含/库要链接,通过手动调用 gcc get 进行编译真的很复杂。设置好 Cmake 后,您只需在 Visual Studio Code 中指定一个与此类似的任务来构建您的项目:
我还建议您阅读以下内容: https ://code.visualstudio.com/docs/cpp/config-mingw
这是一个非常好的解释,基本上正是你试图通过 Microsoft 做的事情,并在我开始使用 Visual Studio Code 进行我的 c++ 工作时帮助我理解这一点。