使用 Clion 生成并测试动态链接库 DLL

DLL 项目

1、新建一个项目,按照下面这样选择:
在这里插入图片描述
2、发现已经为我们写好了一个 hello 函数
在这里插入图片描述
3、直接按 CTRL + F9,会在 cmake-build-debug文件夹出现一个dll文件:
在这里插入图片描述
4、至此,这个dll项目结束,这个dll文件留下备用。

测试项目

1、创建一个正常的可运行项目
在这里插入图片描述
2、新建一个 lib 文件夹,然后把刚才的dll文件拷贝过去。
在这里插入图片描述
3、修改CMakeLists.txt,把这个dll文件加入到新项目
这里要特别注意,一些命令的顺序也不能错。
原来的为:

cmake_minimum_required(VERSION 3.17)
project(testMyLib C)
set(CMAKE_C_STANDARD 99)
add_executable(testMyLib main.c)

修改过的为:

cmake_minimum_required(VERSION 3.17)
project(testMyLib C)

set(CMAKE_C_STANDARD 99)

#设置头文件路径
set(INC_DIR ./include)

#设置链接库路径
set(LINK_DIR ./lib)

#引入头文件
include_directories(${INC_DIR})

#引入库文件
link_directories(${LINK_DIR})

add_executable(testMyLib main.c)

#将第三方库连接在一起
target_link_libraries(testMyLib libepilepsy.dll)

主要的修改步骤就是:

  • 在add_executable这一行的上面,增加:
#设置头文件路径
set(INC_DIR ./include)

#设置链接库路径
set(LINK_DIR ./lib)

#引入头文件
include_directories(${INC_DIR})

#引入库文件
link_directories(${LINK_DIR})
  • 在add_executable这一行的下面,增加:
#将第三方库连接在一起
target_link_libraries(testMyLib libepilepsy.dll)

4、设置环境变量。
由于生成的可执行文件和dll文件不在一个文件夹下面,因此直接运行会报错(Process finished with exit code -1073741515 ),因此需要设置一下环境变量,真正打包的时候可以放一块。
点击编辑配置:
在这里插入图片描述
点击配置环境变量:
在这里插入图片描述
增加一个PATH,内容为DLL文件所在文件夹的绝对路径
在这里插入图片描述
5、写测试代码。
main.c 改成下面的即可:

#include <stdio.h>

void hello();

int main() {
    hello();
    return 0;
}

主要就是需要自己写一个 void hello();的函数声明。
发现结果运行完毕,显示了正常的结果:
在这里插入图片描述


版权声明:本文为hezhongla0811原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。