cmake 生成静态链接库 再导入使用静态链接库

cmake 学习
在这里插入图片描述

1、xlog文件夹下的内容

CMakeLists.txt 文件内容

# CMakeLists.txt cmake文件名大小写不敏感

#指定cmake最低版本
cmake_minimum_required(VERSION 3.20)

#构建项目的名称
project(first_cmake)

# 创建各种类型的库 
# [STATIC | SHARED | MODULE]:可选参数 
# STATIC:创建静态库,静态库在链接时会被完整地复制到可执行文件中。
# SHARED:创建共享库(动态链接库),共享库在运行时动态加载,多个程序可以共享同一个共享库。
# MODULE:创建模块库,通常用于插件系统,不会被链接到可执行文件中,而是在运行时通过特定机制加载。如果不指定该参数,CMake 会根据 BUILD_SHARED_LIBS 变量的值来决定创建静态库还是共享库。
add_library(xlog STATIC xlog.cpp xlog.h)

#构建执行程序
# add_executable(first_cmake 101first_cmake.cpp)

xlog.cpp 文件内容

#include "xlog.h"
#include <iostream>

using namespace std;

XLog::XLog() {
    cout << "Create Xlog" << endl;
}

xlog.h 文件内容

//xlog.h
#ifndef XLOG_H
#define XLOG_H

class XLog
{
	public:
		XLog();
};
#endif
mkdir build
cd build
cmake ..
cd ..
cmake --build build

可看到libxlog.a的文件出现了,成功了。
在这里插入图片描述

2、test_xlog文件夹下的内容

CMakeLists.txt 文件内容

# CMakeLists.txt cmake文件名大小写不敏感

#指定cmake最低版本
cmake_minimum_required(VERSION 3.20)

#构建项目的名称
project(test_xlog)

# 注意在设定查找时是根据 当前cmakelists.txt的相对路径进行查找的
#指定头文件查找路径
include_directories("../xlog")
#指定库查找路径
link_directories("../xlog/build")

#构建执行程序
add_executable(test_xlog test_xlog.cpp)

#指定加载的库 (要放置 构建执行程序后面, 因为这是加载执行程序的依赖库)
target_link_libraries(test_xlog xlog)

test_xlog.cpp 文件内容

#include <iostream> 
#include "xlog.h"
using namespace std;
int main(){
    XLog log; 
    cout<<"test xlog"<<endl; 
return 0;
}

在这里插入图片描述
run.sh 的内容,两个只是cd路径不同。
因为懒得敲命令

cd /root/UniSecurity/cmake_xue/test_xlog
rm -r build
mkdir build
cd build
cmake ..
cd ..
cmake --build build

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

默执_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值