CMAKE-实战1-windows(调用动态库和静态库)


前言

个人cmake学习历程记录,帮助自己复习巩固,也为需要的小伙伴提供一点个人学习经验。


一、cmake是什么?

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。它能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。

Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。
链接: 百科

总结:官方的话总是显得比较高深,绕来绕去。
个人总结:camke首先是一个工具,一般为大型项目构建项目结构所用。以windows平台为例,可以在本地编写名为CMakeLists.txt的文件(名字固定),按照一定的用法规则,即可构建出sln。以前学习c++时,都是在vs上收到配置附加依赖项等环境。开发大型工程时,明显需要一个快速构建项目环境的工具,cmake正发挥了巨大的作用。

二、实战

1.CmakeLists.txt 编写示例

如下(示例):

#根目录

##cmake所需最低版本
cmake_minimum_required(VERSION 3.24.0)

##工程名
project(CMAKE_DEMO)

##设置路径名
set(TARGET_INCLUDE_LIB_PATH ${
   PROJECT_SOURCE_DIR}/algorithm_lib)
set(TARGET_INCLUDE_DLL_PATH ${
   PROJECT_SOURCE_DIR}/algorithm_dll)

##添加子目录
add_subdirectory(main)
add_subdirectory(algorithm_lib)
add_subdirectory(algorithm_dll)

CmakeLists.txt 需要遵循基本语法规则去书写,这里不过得介绍语法规则。感兴趣的可以查询cmake相关指令

2.项目目录树

如下:
在这里插入图片描述
说明:
1:main 文件夹 输出 可执行程序(exe)
2:algorithm_dll 文件夹 输出 动态库(dll)
3:algorithm_lib 文件夹 输出 静态库(lib)
4:bin 文件夹 存放 可执行程序(exe)动态库(dll)
4:lib 文件夹 存放 静态库(lib)
5:build 文件夹 存放 中间文件 ( makefiel 和 sln 等 )

3.项目文件

3.1.静态库 (algorithm_lib)

在这里插入图片描述
其中,public文件夹中存放算法的抽象类 iAlgorithmService_lib.h

(1) algorithm_lib.h 代码如下:

#ifndef _ALGORITHM_LIB_H
#define _ALGORITHM_LIB_H

#include "./public/iAlgorithmService_lib.h"
class  AlgorithmLib : public IAlgorithmLibService
{
   
public:
	AlgorithmLib() {
   };
	~AlgorithmLib() {
   };
public:
	virtual int add(int a, int b) override;
	virtual float add(float a, float b) override;
};
#endif

(2) algorithm_lib.cpp 代码如下:

#
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值