cmake构建项目模板

一、必要依赖程序
vscode
gcc/g++
cmake sudo apt install cmake
ninja
git

二、基本项目搭建

  1. 创建项目
    以项目名称 my_project 为例

cd /xxx                               #进入你的工作路径
mkdir my_project        #创建项目路径
cd my_project               #进入项目路径
code CMakeLists.txt    #通过vscode创建CMakeLists.txt文件

  1. 编写CMakeLists
cmake_minimum_required(VERSION 3.13)

声明项目信息

project(
  my_project                                             #项目名称
  VERSION 0.1.0                                 #当前版本号
  DESCRIPTION "这是我的项目"  #填写项目简要的描述信息   
  HOMEPAGE_URL "http://git.hhqj.com/yourname/my_project"  #填写项目git仓库地址
)#声明一个可执行程序
add_executable(
    program_name    #可执行程序名称
    src/src0.cc              #添加所依赖的源文件
    src/src1.cc
)

  1. 编写源代码并编译运行
mkdir src                                           #在项目路径下创建src目录
code src/src0.cc   src/src1.cc    #创建你的源码并通过vscode编写mkdir build                                      #创建build路径存放编译缓存
cd build                                              #进入build路径
cmake .. -GNinja                             #执行cmake指令构建项目
ninja                                                     #执行ninja指令编译项目
​
./program_name                            #运行你的程序

三、通过源码方式添加依赖
注:该方式只适用于同样使用cmake构建的项目
使用vscode打开CMakeLists.txt,添加以下内容

 # 在声明project之后添加以下内容
  # 包含FetchContent相关功能
  include(FetchContent)#声明一个依赖库
FetchContent_Declare(
  spdlog                                                                                                    #库名称
  GIT_REPOSITORY http://git.hhqj.com/pub/spdlog.git     #库的git仓库位置
  GIT_TAG v1.11.0)                                                                                #所依赖的git分支或tag名称#使能依赖库
FetchContent_MakeAvailable(spdlog)

# 在声明可执行程序之后添加以下内容
#为可执行程序添加依赖库
target_link_libraries(
    program_name    #可执行程序名称
    spdlog                      #依赖库名称
)

四、通过二进制库方式添加依赖
注:该方式需要事先將依赖编译好
以下内容以 ffmpeg 库为例

1.创建libs路径存放二进制依赖


mkdir libs                      #在项目路径下创建libs目录
mkdir libs/ffmpeg      #创建以依赖名命名的路径

在NAS ftp/libs 路进行寻找编译好的依赖,若没有则需要自行编译依赖的源码
将编译好的依赖二进制库和头文件拷贝到项目路径下的 libs/ffmpeg 文件夹内

  1. 编写CMakeLists.txt
    使用vscode打开CMakeLists.txt,添加以下内容:

在声明可执行程序之前添加以下内容

# 设置二进制库的搜索路径
link_directories(
    libs/ffmpeg/include     #依赖二进制库所在路径
)# 设置头文件的搜索路径
include_directories(
    libs/ffmpeg/lib     #依赖头文件所在路径
)# 在声明可执行程序之后添加以下内容
#为可执行程序添加依赖库
target_link_libraries(
    program_name            #可执行程序名称
    avformat                        #依赖库名称
    avcodec             
    avutil
)

五、建立Git仓库

  1. 创建远程仓库
    打开 Git服务器 ,登录账号,创建一个空白项目my_project

  2. 初始化本地仓库

git init    #在项目路径下执行此命令, 只需要执行一次

  1. 编写 .gitignore

code .gitignore #在项目路径下创建.gitignore 文件

禁止在git仓库中添加大体积的非字符文件,如动态库、静态库、视频、图片等
禁止在git仓库中添加临时文件和本地相关的配置信息,如 build 路径下的临时文件和 .vscode 路径下的vscode本地配置文件
在.gitignore中添加这些文件所在路径,让 git 忽略这些文件
例如在 libs 路径下存在二进制库,在 .gitignore 添加以下内容

/libs
/build
/.vscode


  1. 添加追踪的文件并提交
git add ./           #在项目路径下执行此命令
git commit       #执行此命令后须填写提交的内容

  1. 推送到远程仓库
git remote add origin http://git.hhqj.com/yourname/my_project.git #设置远程仓库地址,只需要执行一次
git push -u origin --all            #推送到远程仓库,若非第一次推送,则执行 git push

六、VSCode配置
vscode 安装 c/c++、cmake-tool 插件
同时按下ctrl+shift+p, 打开命令窗口,执行 CMake: Configure

编译选项设置
若在.vscode路径下没有setting.json文件则创建一个
在里面添加一下内容



 

{
    "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools"
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值