Linux環境之下使用VS Code搭建C/C++開發環境

前言:前面的文章介紹了在Windows平臺之下使用Ming-win64和MSVC搭建C/C++的開發環境,本文開始介紹在Linux平臺之下如何搭建開發環境。可以參考前面兩篇文章:

VSCode開發C、C++環境搭建系列(一)——基於Mingw-w64搭建

VSCode開發C、C++環境搭建系列(三)——基於MSVC搭建

一、基本的軟件安裝

gcc

g++

make

cmake

這四個是缺一不可的

本文介紹的是簡單的只包含幾個源文件的C開發,所以make和cmake暫時用不到。

另外關於編輯器vs code的使用和windows上面幾乎每什麼區別,這裏不再贅述。

二、開發環境搭建關鍵的路徑搜索

2.1 頭文件的搜索

gcc 在編譯時如何去尋找所需要的頭文件:

(1)編譯器指定的參數 -I 給出的頭文件包含路徑

2)然後找gcc的環境變量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH(分別對應C、C++、objective-C的頭文件)

(3)GCC標準安裝目錄,系統標準include路徑。安裝GCC套件的時候可以通過--prefix參數手動指定安裝位置。

默認的安裝位置在:

gcc/x86_64-linux-gnu/7/

在這個文件夾之下包含了很多的頭文件以及庫文件

(4)內定目錄,不需要自己額外聲明以及添加的目錄

/usr/include 及其下面的子目錄
/usr/local/include  及其下面的子目錄(centos7中該目錄下是空的)

2.2 靜態庫文件

(1)gcc在編譯的時候通過  -L參數  手動指定的搜索路徑

(2)再找gcc的環境變量LIBRARY_PATH

(3)再找內定目錄,這是這些安裝GCC套件的時候所安裝的那些目錄

/lib和/lib64

/usr/lib 和/usr/lib64

/usr/local/lib和/usr/local/lib64

 

2.3 運行時動態庫的搜索路徑

動態庫的搜索路徑搜索的先後順序是:

(1)編譯目標代碼時使用 -L參數 指定的動態庫搜索路徑;
(2)環境變量LD_LIBRARY_PATH指定的動態庫搜索路徑;
(3)配置文件/etc/ld.so.conf中指定的動態庫搜索路徑;
(4)再找內定目錄,這是這些安裝GCC套件的時候所安裝的那些目錄

/lib和/lib64

/usr/lib 和/usr/lib64

/usr/local/lib和/usr/local/lib64

三、基本配置與簡單實驗

3.1 配置c_cpp_properties.json 文件

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**"   //頭文件以及庫文件的搜索路徑也可以添加進去
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc", //編譯器路徑
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4
}

3.2 配置生成任務的tasks.json文件

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "g++",
            "args":[
                "-g","test.cpp","-o","test.out" //其實就是編譯,這裏指定編譯的參數
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

3.3 配置調試的launch.json文件

{
    // 使用 IntelliSense 瞭解相關屬性。 
    // 懸停以查看現有屬性的描述。
    // 欲瞭解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/test.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

3.4 實驗代碼

#include <iostream>


int main(int argc, char const *argv[])
{
    for(int i=0;i<5;i++)
    {
        std::cout<<i<<std::endl;
    }

    std::cout<<"this is my first linux program!";
    getchar();
    return 0;
}
/*
0
1
2
3
4
this is my first linux program
*/

 

說明:上面僅僅是演示了簡單的C文件的編譯以及運行,如果對於一個比較大的工程文件,make和cmake工具是必不可少的,所以後面會針對這兩個最難的點進行說明,vs code也可以和這些工具配合起來,做成一個比較強大的集成開發環境。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章