VScode中添加頭文件和源文件(C/C++)的方法
一.在相同文件夾下
在正常情況下,若同一文件夾下若頭文件、源文件、和主要代碼在同一文件夾下,則可以正常運(yùn)行程序。
如圖(此為Visual Studio 示例):
編譯結(jié)果(無(wú)報(bào)錯(cuò)):
但在VScode中,同樣的使用方式會(huì)產(chǎn)生報(bào)錯(cuò)。
如下:
main.c:
#include <stdio.h> #include "myheadfile.h" int main() { myprint("hello"); return 0; }
myheadfile.h:
#ifndef _MYHEADFILE_H_ #define _MYHEADFILE_H_ void myprint(char *); #endif
myheadfile.c:
#include <stdio.h> #include "myheadfile.h" void myprint(char *s) { printf("%s",s); return 0; }
報(bào)錯(cuò)如下:
E:/1.Documents/VC_Code/text/main.c:6: undefined reference to `myprint'
collect2.exe: error: ld returned 1 exit status
錯(cuò)誤提示為未定義函數(shù),由于函數(shù)定義在myheadflod.c中,所以我試著將主要代碼更改為:
#include <stdio.h> #include "myheadfile.h" #include "myheadfile.c" //新增一條引用源文件 int main() { myprint("hello"); return 0; }
此時(shí)編譯通過(guò)且無(wú)報(bào)錯(cuò)
=========================================================================
二.在不同文件夾下
但是如果三個(gè)文件分別在不同文件夾呢?
試驗(yàn)運(yùn)行后報(bào)錯(cuò):
此時(shí)需要配置如下文件:
1.ctrl+shift+p ==> 輸入task選擇任務(wù)配置
2.在以下位置插入內(nèi)容:
{ "tasks": [ { "type": "cppbuild", "label": "C/C++: gcc.exe 生成活動(dòng)文件", "command": "E:\\2.VSCode\\mingw64\\bin\\gcc.exe", "args": [ "-fdiagnostics-color=always", "-g", "${file}", "-I","E:/1.Documents/VC_Code/text/inc", //在此插入:"-I","頭文件路徑", "-I","E:/1.Documents/VC_Code/text/scr", //在此插入:"-I","源文件路徑", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "調(diào)試器生成的任務(wù)。" }, { "type": "cppbuild", "label": "C/C++: gcc.exe 生成活動(dòng)文件", "command": "E:\\2.VSCode\\mingw64\\bin\\gcc.exe", "args": [ "-fdiagnostics-color=always", "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": [ "$gcc" ], "group": "build", "detail": "編譯器: E:\\2.VSCode\\mingw64\\bin\\gcc.exe" } ], "version": "2.0.0" }
其中 -I(大寫(xiě)i)表示你的頭文件路徑, -L 表示庫(kù)文件路徑,-l(小寫(xiě)L) 代表庫(kù)文件
3.打開(kāi) c_cpp_properties.json(沒(méi)有的話自行百度找一下怎么打開(kāi)):
{ "configurations": [ { "name": "Win32", "includePath": [ "${default}", "${workspaceFolder}/**", "E:/1.Documents/VC_Code/PAT/inc", //在此插入這兩行 "E:/1.Documents/VC_Code/PAT/src" //在此插入這兩行 ], "defines": [ "_DEBUG", "UNICODE", "_UNICODE" ], "windowsSdkVersion": "10.0.19041.0", "compilerPath": "E:/2.VSCode/mingw64/bin/g++.exe", "cStandard": "gnu17", "cppStandard": "gnu++17", "intelliSenseMode": "windows-gcc-x64" } ], "version": 4 }
在此編譯,通過(guò)且沒(méi)有報(bào)錯(cuò):
總結(jié)
到此這篇關(guān)于VScode中添加頭文件和源文件(C/C++)的文章就介紹到這了,更多相關(guān)VScode添加頭文件和源文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Qt動(dòng)態(tài)庫(kù)調(diào)用宿主進(jìn)程中的對(duì)象方法純虛函數(shù)使用
這篇文章主要為大家介紹了Qt動(dòng)態(tài)庫(kù)調(diào)用宿主進(jìn)程中的對(duì)象方法純虛函數(shù)使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08c++中的字節(jié)序與符號(hào)位的問(wèn)題
這篇文章主要介紹了c++中的字節(jié)序與符號(hào)位的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07淺析VSCode launch.json中的各種替換變量的意思 ${workspaceFolder} ${file} $
這篇文章主要介紹了VSCode launch.json中的各種替換變量的意思 ${workspaceFolder} ${file} ${fileBasename} ${fileDirname}等,非常不錯(cuò)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03C++ OpenCV實(shí)戰(zhàn)之制作九宮格圖像
本文將為大家介紹如何使用OpenCV C++ 制作九宮格圖像,即將一張圖像均等分成九份,然后將這九個(gè)小塊按一定間隔拷貝到新畫(huà)布上就可以啦。感興趣的可以動(dòng)手試一試2022-01-01C++使用cjson操作Json格式文件(創(chuàng)建、插入、解析、修改、刪除)
本文主要介紹了C++使用cjson操作Json格式文件(創(chuàng)建、插入、解析、修改、刪除),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02OLEDB打開(kāi)Excel文件的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇OLEDB打開(kāi)Excel文件的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01C語(yǔ)言實(shí)現(xiàn)三子棋小游戲(vs2013多文件)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)三子棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06基于MFC和OpenCV實(shí)現(xiàn)角點(diǎn)檢測(cè)
這篇文章主要為大家詳細(xì)介紹了基于MFC和OpenCV實(shí)現(xiàn)角點(diǎn)檢測(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03