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 版权声明:本文为博主原创文章,转载请附上博文链接!
|