Clion C/C++动态库生成与调用简单Demo win11&ubuntu
Posted Jason_ou2021
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Clion C/C++动态库生成与调用简单Demo win11&ubuntu相关的知识,希望对你有一定的参考价值。
最近搞了个Eletron项目,需要用到调用动态库实现部分功能,探索了很久,记录一下。方便他人也,方便自己。OK,Talk is cheap,show code。
第一步,生成动态库文件
打开Clion,New Project, 如图,左边选择C、C++Library, 选择C++Library,右边输入项目名称,library替换untitled,
选择语音版本 - Language standard, C++17,
选择库类型Library type - 选择shared动态库。shared动态的,static静态的。ps: 动态库和静态库的区别,都可以实现功能供程序调用,但是调用后的存在形式有区别,动态的不管多少程序调用,库在内存里都只有一份,静态有多少个程序调用就有多少个库在内存里,所以为了节省内存一般都用动态库。
点Create即可,等待创建和初始化完成。windows也是一样的步骤,我用的是Ubuntu。
如图点build-> build 'library',生成动态库,在cmake-build-debug里有个liblibrary.so,是linux里的动态库文件,如果是windows是liblibrary.dll。到此生成成功,动态库里有一个方法hello()。
第二步,引用并使用动态库文件
再新建一个可执行的项目,New Project - C++Executable - 命名test - 选择语音版本 - Language standard, C++17 - Create
创建两个文件,如图,include和lib,
把第一步生成的liblibrary.so复制到lib,和第一步Clion创建的library.h复制到include。
再在CMakelists.txt里指定引入
cmake_minimum_required(VERSION 3.15)
project(test)
set(CMAKE_CXX_STANDARD 17)
# 指定lib目录
include_directories($PROJECT_SOURCE_DIR/include)
# 指定头文件搜索路径
link_directories($PROJECT_SOURCE_DIR/lib)
add_executable(test main.cpp)
# 将库链接到项目中, Windows平台是liblibrary.dll
target_link_libraries($PROJECT_NAME liblibrary.so)
打开同目录下的main.cpp,引入并调用hello()方法
#include "library.h"
int main()
hello();
return 0;
成功输出Hello, world
开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系以上是关于Clion C/C++动态库生成与调用简单Demo win11&ubuntu的主要内容,如果未能解决你的问题,请参考以下文章
Clion C/C++动态库生成与调用简单Demo win11&ubuntu
《Python开发 - Python杂记》Python与C/C++混合编程