日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

VScode中添加頭文件和源文件(C/C++)的方法_C 語(yǔ)言

作者:AshO. ? 更新時(shí)間: 2022-10-05 編程語(yǔ)言

一.在相同文件夾下

在正常情況下,若同一文件夾下若頭文件、源文件、和主要代碼在同一文件夾下,則可以正常運(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é)

原文鏈接:https://blog.csdn.net/T1cH9/article/details/124787711

欄目分類
最近更新