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\test-hello\cmake-build-debug\test_hello.exe



Process finished with exit code -1073741515 (0xC0000135)

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

通过Clion设置环境变量

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

 

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

 

三.附录 源码地址:

hello dll动态库: https://gitee.com/luanhaoyu_admin/hello.git

test-hello 测试调用动态库:  https://gitee.com/luanhaoyu_admin/test-hello.git

 

四.后续 

下一篇将回归java,讲解如何使用java jna调用c动态链接库函数,敬请期待。

 

 

 

 

  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值