yanhy's 学习记录匣

  • 首页
  • 标签
  • 分类
  • 友链
  • 时间轴
  • 关于
  • 泉镜岛 赞助页面
Yanhy's 学习记录匣
记录学习中的点点滴滴~
  1. 首页
  2. 教程分享
  3. 正文

CLion编译C++动态链接库时引入外部静态库

2022年7月27日 130点热度 0人点赞 0条评论

简单记录一下用CLion编译C++动态链接库时引入外部静态库遇到的问题,查了很久的cMakeList.txt文件用法,终于把外部的头文件和静态库.lib一起编译了进来...(刚接触CLion,MinGW用不惯,给换成了VS2022编译器环境)

内容 隐藏
1 创建动态链接库
2 编写代码
3 引用外部依赖并编译
3.1 文件导入
3.2 编辑CMakeLists.txt
3.3 重新加载CMake
3.4 构建工程

创建动态链接库

选择C++库,指定位置后,库类型设置为shared(本次演示使用动态链接库而非静态库),点击创建工程

a1.png

编写代码

示例代码:
library.cpp

#include <iostream>
#include "plugin.h"
#include <unordered_map>

cspLogger logger("eoe");

void func(std::unordered_map<std::string, std::string> data){
    std::cout<<"data-size:"<<data.size()<<std::endl;
}
void PluginInit(){
    std::cout<<"test_plugin loaded!"<<std::endl;
    logger.info("test_plugin loaded!");
    SetListener(EventCode::onServerStart,func);
}

代码部分为某项目半成品,无参考价值,仅示例

引用外部依赖并编译

文件导入

手动将目标SDK文件夹中的head、lib文件夹放到项目根目录

a2.png

编辑CMakeLists.txt

主要修改:5-7行

cmake_minimum_required(VERSION 3.22)
project(test_1)
set(CMAKE_CXX_STANDARD 14)

include_directories("Head")#引入外部头文件路径
link_directories("Lib")#引入外部依赖库路径
link_libraries(a)#引入依赖文件名
add_library(test_1 SHARED library.cpp)

重新加载CMake

a3.png

构建工程

点击上方构建,选择第三个构建当前工程,待显示构建 已完成,即可在对应配置目录内找到构建成功的的动态数据库,本项目生成文件为test_1.dll,可用于给其他项目加载。

a4.png

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: c++ clion 编程
最后更新:2022年7月27日

yanhy

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

归档

  • 2023年4月
  • 2022年11月
  • 2022年7月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年6月
  • 2021年4月
  • 2021年3月

分类

  • Linux
  • 技术杂谈
  • 教程分享
  • 服务器管理
  • 树莓派
  • 群晖
  • 随笔

COPYRIGHT © 2023 yanhy's 学习记录匣. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

皖ICP备2023007206号-1