Question Updated: I'm trying to build a c++ project on vscode using the C/C++ extension. The compiler complains about not finding header files (actually boost headers). I have included path to the root folder of boost, and Intellisense is also able to parse the header paths, but not the compiler. I checked the included header in my source is in the corresponding path in my filesystem. Is there any solution to make the compiler see the include headers?
This is my c_cpp_properties.json file:
{ "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**", "C:/Users/zz_ro/Documents/source/boost_1_70_0" ], "defines": [ "_DEBUG", "UNICODE", "_UNICODE" ], "windowsSdkVersion": "10.0.17763.0", "compilerPath": "C:/mingw/bin/g++.exe", "cStandard": "c11", "cppStandard": "c++11", "intelliSenseMode": "gcc-x64" } ], "version": 4 } and this is my helloworld.cpp file:
#include "boost/math/constants/constants.hpp" #include "boost/multiprecision/cpp_dec_float.hpp" #include <iostream> #include <limits> int main() { using boost::multiprecision::cpp_dec_float_50; cpp_dec_float_50 seventh = cpp_dec_float_50(1) / 7; std::cout.precision(std::numeric_limits<cpp_dec_float_50>::digits10); std::cout << seventh << std::endl; } And here is the compiler output:
helloworld.cpp:1:46: fatal error: boost/math/constants/constants.hpp: No such file or directory #include "boost/math/constants/constants.hpp" ^ compilation terminated. The terminal process terminated with exit code: 1 If I change my tasks.json from
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "build hello world", "type": "shell", "command": "g++", "args": [ "-g", "helloworld.cpp", "-o", "helloworld" ], "group": { "kind": "build", "isDefault": true } } ] } to
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "build hello world", "type": "shell", "command": "g++", "args": [ "-g", "-IC:\\Users\\zz_ro\\Documents\\source\\boost_1_70_0", "helloworld.cpp", "-o", "helloworld" ], "group": { "kind": "build", "isDefault": true } } ] } by just manually passing the include path as an argument to g++.exe and the compilation will go through. It confuses me that in the tutorial (vscode tutorial) there is no mention about manually inserting include path to g++.exe via command line parameters, where all of these are supposed to be done by modifying the includePath variable in c_cpp_property.json. Did I misunderstand the tutorial or I didn't set the includePath value properly?
#include "constants.hpp". The use of angle brackets changes the paths the compiler will use to look for headers.