Программа Visual Studio C ++ не может найти папку включения, даже если она указана - PullRequest
0 голосов
/ 10 декабря 2018

Я только начинаю программировать на C / C ++ с использованием установленного кода Visual Studio.У меня установлены все необходимые пакеты.Мой проект 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

Как вы можете видеть, он не может найти заголовочные файлы в каталоге include, который был явно указан в cpp_properties.jsonфайл.

Я прочитал много похожих вопросов о стеке, чтобы выяснить проблему без какого-либо успеха.

Пожалуйста, советуйте, так как я борюсь с этим со вчерашнего дня.

1 Ответ

0 голосов
/ 10 декабря 2018

Это потому, что вы написали #include <someFile.h>.Что вы должны были сделать, это использовать #include "someFile.h".

При использовании <> вы указываете компилятору искать в своем собственном каталоге для включений.При использовании "" вы указываете компилятору выполнить поиск по указанному пути включения.

Отредактировано для ясности: просто укажите флаг -I для gcc с вашей папкой включения.Для тебя это было бы что-то вроде этого g++ -I include -g mains/SimpleMCMain1.cpp -o SimpleMCMain1.out && clear && ./SimpleMCMain1.out

...