今天研究如何生成动态链接库.dll文件纠结了好久。在保证代码文件不报错的情况下,可能要注意几个方面。
一·项目结构要完整。
Clion项目生成后会和其他编程工具不同的地方在于会有一个CMakelist文件和cmake-build-debug文件夹。
如果没有Cmakelist可以使用importProject重新导入项目:https://blog.csdn.net/superSmart_Dong/article/details/98982679如果编译不通过,在代码保证正确的情况下设置Setting->Build,Execution,Deployment->Cmake->Generation Path ,设置选中为你的cmake-build-debug。
二.编写好Cmakelist文件。
在代码确保没报错的前提下,只要写好Cmakelist文件就可以进行Build,生成链接库了。
add_library(DEMOProject SHARED Afile.cpp Afile.hpp)有这句话就能够生成出dll动态链接库了add_library(<name> [STATIC | SHARED | MODULE][EXCLUDE_FROM_ALL][source1] [source2] [...])
该指令的主要作用就是将指定的源文件生成链接文件,然后添加到工程中去,[STATIC | SHARED | MODULE]指定生成链接库的类型,指定STATIC,SHARED,或者MODULE参数用来指定要创建的库的类型。STATIC库是目标文件的归档文件,在链接其它目标的时候使用。如果什么都不写那么就会生成.a文件,也就是Linux的静态链接库文件。add_executable(DEMOProject Afile.cpp Afile.hpp)这是添加可执行文件的,如果把add_libarary写成这个命令,而你写的代码中也没有WinMain则会报找不到Winmain,编译出来的文件也不是链接库文件。会报类似下面的错误。undefined reference to 'Winmain' DemoProject.exe:error:Id return 1 exit status
make[2]: *** [test_cpu] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/test.dir/all' failed
make[1]: *** [CMakeFiles/test.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

总结:Clion生成动态链接库.dll文件,确保CMakelist文件和cmake-build-debug正确,然后确保add_library正确,类型为SHARED,之后Run->build,就慢慢等,build完了一般就会在cmake-build-debug文件夹下生成.dll文件了。项目太大,生成时间太长,自己最好新建一个小项目试试行不行。

Clion生成动态链接库.dll相关推荐

  1. dll = MinGW gcc 生成动态链接库 dll 的一些问题汇总

    MinGW gcc 生成动态链接库 dll 的一些问题汇总 https://blog.csdn.net/liyuanbhu/article/details/42612365 网络上关于用 MinGW  ...

  2. 【DLL】clion生成.dll文件、python调用.dll文件

    最近为了生成以及调用.dll文件,踩了一些雷,记录如下 目录 1.clion中生成.dll 2.clion中测试生成的.dll文件 3.在python中调用.dll文件 [1]导入.dll [2]ct ...

  3. Qt生成调用动态链接库dll

    把编译好的包含函数和变量的目标代码存储到文件中,在链接的时候让链接程序自动从文件中查找需要的代码.这个文件就是链接库,又可以分为静态链接库和动态链接库. 1. 静态链接库 链接程序从库中寻找需要的符号 ...

  4. windows动态链接库dll生成和使用

    一.生成动态链接库. MyDll.h #pragma once#ifdef _MYDLL_EXPORT#define DLL_API _declspec(dllexport)#else#define ...

  5. C++动态链接库dll及静态链接库lib制作及使用教程

    现需将C++函数封装成动态链接库dll,网上看了好多博客教程,说的都不够全面,现提供一个很有用的视频,亲测有效,启发很大,附上链接: 视频网址 下面自己根据视频记录下制作动态链接库dll过程,防止忘记 ...

  6. VC++动态链接库(DLL)编程(四)――MFC扩展 DLL

    VC++动态链接库(DLL)编程(四) ――MFC扩展 DLL 作者:宋宝华  e-mail:21cnbao@21cn.com   前文我们对非MFC DLL和MFC规则DLL进行了介绍,现在开始详细 ...

  7. VC++动态链接库(DLL)编程(一)――理解库

    VC++动态链接库(DLL)编程(一) ――理解库 作者:宋宝华  e-mail:21cnbao@21cn.com 1.概论 先来阐述一下DLL(Dynamic Linkable Library)的概 ...

  8. 动态链接库dll,静态链接库lib, 导入库lib

    目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称"静态库"),另一种为动态连接库(DLL,以下简称"动态库")的导入库(Imp ...

  9. c#(winform)环境下使用动态链接库dll的详解

    c#(winform)环境下使用动态链接库dll的详解 转载 2016年05月14日 10:12:17 3208 1,什么是dll文件? DLL(Dynamic Link Library)文件为动态链 ...

最新文章

  1. 第十九课.Pytorch-geometric扩展
  2. Tomcat+Apache 负载均衡
  3. 制作越狱版本的ipa文件
  4. 信息系统项目管理师-信息系统范围管理核心知识点思维脑图
  5. [css] 使用rem布局时怎样合理设置根标签字体大小?
  6. 计算机网络之网络层:1、网络层功能、路由算法和路由选择概述
  7. c语言中通过指针引用数组,C语言基础(二)
  8. “UNIX的名字是我起的”——对话UNIX开发者Brian W. Kernighan
  9. middleware什么意思_middleware
  10. 如何在linux系统中快速切换目录(目录栈的使用),如何在Linux下环境下快速切换工作目录...
  11. 现在AR/VR机会很少,可能全都是泡沫之互联网创业分析!
  12. 【FinE】统计与计量指标计算(Matlab)
  13. 也谈ibm aix jfs2
  14. 原生js实现数据双向绑定
  15. Hive查询分析计算:股票分析
  16. Elyse Alexander - Unplanned Song WA47电子管麦克风
  17. 通达oa考勤可以代打吗_个人考勤使用方法
  18. html设定按钮位置示例
  19. PPT技巧,帮助你更好的制作PPT
  20. 液压机的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

热门文章

  1. 专注于网络安全的数据中心在莫斯科开通运营
  2. nexus-3本地下载jar的settipng.xml配置
  3. Spring 5 新特性:函数式Web框架
  4. 送给使用phpstorm+thinkphp开发者的福利
  5. [转载] 杜拉拉升职记——07 管理者关心细节吗?
  6. IT服务台的进化(2)--企业外部服务台的优缺点
  7. 金御® GM-AFM介绍
  8. k8s minikube管理镜像相关命令:minikube image list/pull/load
  9. java代码执行流程
  10. k8s:pod容器的生命周期之init容器