基于vscode 的c/c++多文件链接库项目编译之cmake实现

1 篇文章 0 订阅
1 篇文章 0 订阅

项目目录结构

在这里插入图片描述

.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插件
在这里插入图片描述
在左侧会自动生产图标
在这里插入图片描述


  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值