你好,欢迎来到电脑编程技巧与维护杂志社! [免费注册][请登录 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / C专栏
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文件等

 

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动态链接库函数,敬请期待。
---------------------
作者:再见尼罗河
来源:CSDN
原文:https://blog.csdn.net/v2sking/article/details/84495941
版权声明:本文为博主原创文章,转载请附上博文链接!

  推荐精品文章

·2019年12月目录 
·2019年11月目录 
·2019年10月目录
·2019年9月目录 
·2019年8月目录
·2019年7月目录
·2019年6月目录
·2019年5月目录
·2019年4月目录    
·2019年3月目录   
·2019年2月目录   
·2019年1月目录  
·探析云计算下应用软件用户数据安全问题
·地理空间集束线可视化表达

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区长春桥路5号6号楼1209室,邮编:100089