使用 c_cpp_properties.json 配置包含文件/頭文件
如果在 .vscode文件夾中沒有 c_cpp_properties.json可以使用Ctrl+Shift+P輸入並打開 C/C++: Edit Configurations (UI)
此時出現默認的 c_cpp_properties.json 文件。接下來在 "includePath" 中添加頭文件的路徑即可。
不知道頭文件具體路徑在哪里?沒關系。比如 opencv2/highgui.cpp 文件,使用Ubuntu文件搜索功能直接找到其在系統中的位置 /usr/local/include/opencv4/ 添加即可。
當然首先你需要安裝了opencv等依賴文件。
參考:
https://code.visualstudio.com/docs/cpp/config-linux
------------------------------------------------------分割線 -------------------------------------------------------------------------
注意!以上的路徑添加方法只能告訴vscode的intellisense頭文件的位置,以用於代碼補全等。但在編譯時依然會出現 找不到頭文件的錯誤。我們需要在task.json的編譯命令中添加路徑。
預備知識:g++ 編譯命令選項
-Ldir
制定編譯的時候,搜索庫的路徑。比如你自己的庫,可以用它制定目錄,不然
編譯器將只在標准庫的目錄找。這個dir就是目錄的名稱。
-Idir (大寫i)
在你是用#include"file"的時候,gcc/g++會先在當前目錄查找你所制定的頭文件,如果沒有找到,他回到缺省的頭文件目錄找,如果使用-I制定了目錄,他
回先在你所制定的目錄查找,然后再按常規的順序去找.
對於#include<file>,gcc/g++會到-I制定的目錄查找,查找不到,然后將到系統的缺省的頭文件目錄查找
-g 生成調試信息。GNU 調試器可利用該信息。
-IDIRECTORY 指定額外的頭文件搜索路徑DIRECTORY。 (大寫i)
-LDIRECTORY 指定額外的函數庫搜索路徑DIRECTORY。
https://blog.csdn.net/woshinia/article/details/11060797
-L -l (小寫L)選項的區別 https://stackoverflow.com/questions/519342/what-is-the-difference-between-i-and-l-in-makefile
其他參考:
https://github.com/Microsoft/vscode-cpptools/issues/1889
https://stackoverflow.com/questions/61079599/includepath-in-c-cpp-properties-json-not-working-in-vscode-for-c
task.json 如圖,此時再debug,不會再出現找不到NvInfer.h 或者 opencv2/opencv.hpp 的錯誤。