很多时候,特别是涉及到系统层面或者硬件的时候,我们会用动态链接库来实现调用。我们自己来创建一个C++动态链接库,来测试下。
环境:
系统:mac os
工具:clion
C++: 14
创建一个动态链接库工程,类型选shared
创建之后,我们可以看到里面有一个hello的默认函数
执行build,会生成一个libms.dylib文件 这个就是动态链接库文件了。
以上就创建了一个最基本的动态链接库,那么我们来试试看怎么调用。
创建一个执行工程
创建之后,会看到有个main方法,这个就是入口文件了。
编译信息在 CMakeLists.txt 文件中,可以看到默认信息
cmake_minimum_required(VERSION 3.21)
project(ms_exec)
set(CMAKE_CXX_STANDARD 14)
add_executable(ms_exec main.cpp)
将生成的动态链接文件 还有头文件 复制到工程下
并修改 CMakeLists.txt 如下
cmake_minimum_required(VERSION 3.21)
project(ms_exec)
set(CMAKE_CXX_STANDARD 14)
set(LINK_DIR ./lib)
#设置链接文件夹
link_directories(${LINK_DIR})
add_executable(ms_exec main.cpp)
#链接到当前项目的文件
target_link_libraries(ms_exec libms.dylib)
把头文件加入到代码里,就可以调用链接库里的方法了。
#include <iostream>
#include "./lib/library.h"
int main() {
hello();
std::cout << "Hello, World!" << std::endl;
return 0;
}
执行结果如下:
Hello, World!
Hello, World!
动态链接库调用成功。