Clion c++调用c动态链接库

Clion c++调用c动态链接库

本人是主java开发,一直比较喜欢使用JetBrains家的开发工具 做网站开发idea,webstrom都非常好用,

最近因为业务需求要调用硬件上的驱动程序,便开始学习c++,发现jetbrains也有一款开发工具clion

果断下载下来,以最简单的hello开始记录下流程,本文并无设计C和C++相关理论知识,仅记录如何使用Clion

开发工具完成简单的C和C++语言开发调用动态链接库。

Clion 安装和破解教程和idea类似,不是本文重点,请自行百度。

开发环境 :win7 + clion2018.2 + MinGw

    一.创建项目hello dll文件

1. 创建 c动态链接库项目hello 选择C Library libraryType为shared 共享库

2.以Clion生成的模板为准,默认已经包含 简单的hello方法,CMakeLists文件等

  1. ctrl+F9编译生成dll文件 (window下为dll,linux下为so文件)
    二.编写测试项目调用共享库

1.创建项目 test-hello

2根据录下新建lib文件夹,拷贝放入上一步生成的libhello.dll

3.main.cpp加入 (这一步由于是c++调用c的库 所以增加一步预编译判断环境类型,c调用c函数则无需),并修改main函数调用hello函数

#include <iostream>


#ifdef __cplusplus

extern "C" {

#endif


void hello();

#ifdef __cplusplus

}

#endif


int main() {

    hello();

    return 0;

}

4.CMakeLists.txt添加 target_link_libraries 这里无需增加lib路径,默认会寻找根目录lib下的文件

#指定lib目录

link_directories(lib)



#add_executable后添加

target_link_libraries(test_hello libhello.dll)

5.编译并运行 test_hello.exe项目,不出所料控制台讲报如下错误:

E:Cworkspace	est-hellocmake-build-debug	est_hello.exe



Process finished with exit code -1073741515 (0xC0000135)

这是由于添加的共享库没有放到系统环境变量中,系统找不到该dll文件

通过Clion设置环境变量

run Confitrations 设置 Environment variables PATH=lib目录绝对路径

6.再次运行,控制台成功输出Hello, World!

hello dll动态库:

test-hello 测试调用动态库:

四.后续

经验分享 程序员 微信小程序 职场和发展