c++ - 即使已指定,Visual Studio C++ 程序也找不到包含文件夹

标签 c++ ubuntu visual-studio-code header-files include-path

我刚开始使用安装的 Visual Studio Code 进行 C/C++ 编程。我已经安装了所有必要的软件包。我的 CPP 项目具有以下目录结构:

DesignCPP #(parent/working directory)
/include
/mains
/source

c_cpp_properties.json 文件具有以下代码:

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "/home/pinaki/Finance_with_C++/DesignCPP/include",
                "${workspaceRoot}"                
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4
}

我尝试运行的 C++ 程序片段:

#include <Random1.h>
#include <iostream>
#include <cmath>
using namespace std;

double SimpleMonteCarlo1(double Expiry,
                     double Strike,
                     double Spot,
                     double Vol,
                     double r,
                     unsigned long NumberOfPaths)
{
...
..

Ctrl+Shift+B 返回:

> Executing task:  g++ -g mains/SimpleMCMain1.cpp -o SimpleMCMain1.out && clear && ./SimpleMCMain1.out <

mains/SimpleMCMain1.cpp:8:10: fatal error: Random1.h: No such file or directory
 #include <Random1.h>
          ^~~~~~~~~~~
compilation terminated.
The terminal process terminated with exit code: 1

如您所见,它无法在 cpp_properties.json 文件中明确指定的包含目录中找到头文件。

我看了很多类似的stack question来找出问题,但都没有成功。

请指教,因为我从昨天开始就在努力解决这个问题。

最佳答案

那是因为你写了#include <someFile.h> .你应该做的是使用 #include "someFile.h" .

当使用 > 时,您告诉编译器在其自己的目录中搜索包含。使用 "" 时,您是在告诉编译器搜索指定的包含路径。

为清楚起见编辑: 只需在包含文件夹中为 gcc 指定 -I 标志。 对你来说可能是这样的 g++ -I include -g mains/SimpleMCMain1.cpp -o SimpleMCMain1.out && clear && ./SimpleMCMain1.out

关于c++ - 即使已指定,Visual Studio C++ 程序也找不到包含文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53699165/

相关文章:

c++ - 我应该总是使用 noexcept 作为 setter/getter 吗?

c++ - 自定义位数组 [] 和赋值运算符

linux - 如何比较bash中的IP值?

java - 将 Java 程序添加到 Ubuntu 上下文菜单

linux - 如何从 systemd 配置文件中的函数输出设置 ExecStart?

linux - 如何将 Visual Studio Code 与 Haskell 和 Docker 结合使用

asp.net-core - Dotnet核心输入开关无效: -t

c++ - 如何更改使用CPack安装的可执行文件的名称?

flutter - 格式化dart文件时如何更改vscode中的dart线长度?

UML 中的 C++11 可变模板参数表示法