基於vscode 的c/c++多文件鏈接庫項目編譯之cmake實現

項目目錄結構

在這裏插入圖片描述

.vscode文件詳情

launch.json

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

tasks.json

{
    "tasks": [
        {
            "type": "shell",
            "label": "multi_build",
            "command": ". build.sh", ///usr/bin/g++
        
            
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ],
    "version": "2.0.0"

}

build.sh


cd ./build
cmake  ..  > TriffleInfo
make

CMakeLists.txt

cmake_minimum_required (VERSION 2.8)
project(MULTI_BUILD_VSCODE)
set(CMAKE_CXX_COMPILER "g++")
set (CMAKE_CXX_FLAGS  "-g -fexec-charset=utf-8")

find_package(OpenCV REQUIRED)  
if(CMAKE_VERSION VERSION_LESS "2.8.11")
  include_directories(${OpenCV_INCLUDE_DIRS})
endif()
 
include_directories(${PROJECT_SOURCE_DIR}/inc)
aux_source_directory(./src SrcFiles)
set(EXECUTABLE_OUTPUT_PATH  ${PROJECT_SOURCE_DIR}/bin)
add_executable(MULTI_BUILD_VSCODE ${SrcFiles})

target_link_libraries(MULTI_BUILD_VSCODE ${OpenCV_LIBS})

src和inc目錄下文件

show.cpp

#include <iostream>
#include "a.h"
#include "b.h"

#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main(){
	cout<< "main "<<endl;
	a();
	a();
	b();
	Mat img = imread("/home/strauss/Documents/multi_build_vscode/1.jpg");
	imshow("img",img);
	waitKey(0);

	return 0;
}

運行結果

在這裏插入圖片描述

cmake-tools的使用

使用cmake-tools可以省去build.sh的創建和對應json文件的配置,操作如下:
下載安裝cmake-tools插件
在這裏插入圖片描述
在左側會自動生產圖標
在這裏插入圖片描述


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