Cmake:标准的Linux C++工程构建

1. 工程结构

每个代码文件均包含CMakeLists.txt文件

.
├── CMakeLists.txt
├── build
├── mylib
│   ├── CMakeLists.txt
│   ├── mymath.cpp
│   └── mymath.hpp
└── src
    ├── CMakeLists.txt
    └── demo.cpp

3 directories, 6 files

2. CMakeLists.txt

(1) mylib路径下的CMakeLists.txt
├── mylib
│ ├── CMakeLists.txt
│ ├── mymath.cpp
│ └── mymath.hpp

# 把该文件加的所有文件 用变量DIR_LIB_SRCS表示
AUX_SOURCE_DIRECTORY(. DIR_LIB_SRCS)
# 设置编译后输出的库文件路径
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
# 将mylib文件,生成Mylib.a库文件
ADD_LIBRARY(Mylib STATIC ${DIR_LIB_SRCS})

(2) src路径下的CMakeLists.txt
└── src
├── CMakeLists.txt
└── demo.cpp

# 添加mylib路径
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/mylib)
# 生成可执行文件的路径
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
# 把该文件加的所有文件 用变量DIR_LIB_SRCS表示
AUX_SOURCE_DIRECTORY(./ DIR_SRCS)
# 生成可执行文件demo4
ADD_EXECUTABLE(demo4 ${DIR_SRCS})
# 链接Mylib文件 生成demo5
TARGET_LINK_LIBRARIES(demo4 Mylib)

(3)顶层CMakeLists.txt

# 设置最低的cmake版本
CMAKE_MINIMUM_REQUIRED(VERSION 3.10)
# 设置工程名
PROJECT(demo5)
# 添加子文件夹路径
ADD_SUBDIRECTORY(./mylib)
ADD_SUBDIRECTORY(./src)

3. 执行

# cd build && cmake .. && make
# ./bin/demo4 2 10
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DYF-AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值