背景描述:

库A开发最初是以静态库形式存在,随着时间推移项目功能逐渐增多,涉及库A的内容也增多。组内成员开发各有习惯,QtCreator和VS2015未作限制。

现象:

  1. VS2015编辑器下正常编译和使用,使用QtCreator进行库A编译时发现无法编译成功,错误信息Lnk2019;
  2. 主动修改库A为动态库(.pro文件去除CONFIG += staticlib),只生成dll而无lib文件;

现象a原因和解决方案:

原因:库A部分组件加载时涉及C++和C底层库,VS编译时可由VS编译环境完成查找和链接,Qtcreator编译则缺少对应链接信息,导致报错Lnk2019;

解决方案:找到对应链接库,写入到.pro文件链接路径即可;

现象b原因和解决方案:

原因:动态库导出需要包含dllexport信息,静态编译时此部分直接忽略,转动态库时完全忘记还有此项内容。。。。

解决方案:如下添加动态链接信息即可;

#ifdef WIN32#ifdef MYLIBRARY_EXPORT_DEF#define MYLIBRARY_EXPORT __declspec(dllexport)#else#define MYLIBRARY_EXPORT __declspec(dllimport)#endif
#else#define MYLIBRARY_EXPORT
#endif#ifdef WIN32#ifdef MYLIBRARY_API_DEF#define MYLIBRARY_API __declspec(dllexport)#else#define MYLIBRARY_API __declspec(dllimport)#endif
#else#define MYLIBRARY_API
#endif

Qt 编译动态库只生成dll没有lib文件相关推荐

  1. C++ dll库只生成dll文件,而未生成lib文件的问题

    C++ dll库只生成dll文件,而未生成lib文件的问题 逐项检查 逐项检查 新建项目时,选择应用程序类型为dll,并勾选"Export Symbols": 属性->链接器 ...

  2. 编译Gmsh,生成dll和lib文件,在自建程序中使用Gmsh函数

    本文参考了CAD大神潇湘散人的Gmsh编译博客:使用VS2015编译gmsh4.8 with opencascade7.4,并用gmsh.lib创建简单工程测试网格_XXM的博客-CSDN博客在编译过 ...

  3. android.mk编译动态库,安卓之Android.mk多文件以及动态库编译

    1.多文件编译 多文件编译共有两种方式: (1) 在Android.mk中一一添加 LOCAL_PATH:= $(call my-dir) #定义当前模块的相对路径 include $(CLEAR_V ...

  4. C++:通过多态实现接口并生成dll和lib文件的小例子

    1.接口声明头文件 首先声明一个形状基类,然后是三个派生类三角形.长方形和圆形. 基类中只有一个函数,getArea()输出面积 三个派生类分别对getArea()重载,分别有各自的构造函数 派生类的 ...

  5. [DLL] DLL动态库没有生成LIB的解决方法

    在导出函数在声明和定义时,都一定要有关键字 _declspec(dllexport)  ,这样才会同时生成 .dll 和 .lib 文件. demo: 接口头文件: #pragma onceexter ...

  6. 静态链接库(LIB)和动态链接库(DLL),DLL的静态加载和动态加载,两种LIB文件。

    静态链接库(LIB)和动态链接库(DLL),DLL的静态加载和动态加载,两种LIB文件. 一. 静态链接库(LIB,也简称"静态库")与动态链接库(DLL,也简称"动态库 ...

  7. Qt+openCV学习笔记(五)Qt5.15.2+openCV4.5.4+VS2019_64编译动态库

    前言 opencv官方只提供基本的库,若是用到其他库,需要自己编译.通常只要编译自己需要的模块就可以了,本次编译过程可供大家参考 本次编译的,是未带CUDA加速的版本 假设Qt.VS2019已正常安装 ...

  8. linux 生成dll文件,Linux和Windows平台 动态库.so和.dll文件的生成

    Linux动态库的生成 1. 纯cpp文件打包动态库 将所有cpp文件和所需要的头文件放在同一文件夹,然后执行下面命令 gcc -shared - fpic *.c -o xxx.so: g++ -s ...

  9. C++中.lib静态库、.dll动态库的生成及调用1

    一.前言 1.动态链接库(dll)与静态链接库(lib): 动态链接库(dll)是一个可以被其他应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源.在链接步骤中,连接器将从库文件取得所需的代 ...

最新文章

  1. 微软给程序代码加的css效果
  2. DIV背景半透明,DIV中的字不半透明
  3. 对一个简单汇编程序分析
  4. 【BZOJ4566】找相同字符,后缀数组
  5. 在不同应用场景中,我们该如何进行测试呢?
  6. Linux环境SOCKET编程2:epoll分析
  7. h5自定义微信分享链接
  8. 【学习体会】泊松表面重建
  9. ROS 学习踩坑笔记1-如何解决Roboware : Path is not ROS Workspace (Robo ware 无法打开workspace)
  10. 一、物流的基本概念|1.2现代物流管理的形成和发展
  11. 软件行业的QA与QC的区别
  12. 古筝d调变降e调怎么办_古筝转调方法_古筝怎么转调
  13. 公开在线讲座|Tamer Özsu教授:图处理-全景式视角和开放性问题
  14. Springboot 整合Websocket+Stomp协议+RabbitMQ做消息代理 实例教程
  15. 华为自研系统鸿蒙,全球第一家!魅族官方中午12点宣布:看我力挺华为鸿蒙OS系统崛起...
  16. 西门子TIA博途仿真器PLCSIM使用教程
  17. java录制声音(采集声卡音频数据)
  18. linux硬盘恢复软件哪个好用,这些Linux数据恢复工具,你用过哪几个
  19. 触发器的Sd和Rd的作用(转)
  20. [iOS]将数字、日期转为中文

热门文章

  1. CNN经典模型整理Lenet,Alexnet,Googlenet,VGG,Deep Residual Learning,squeezenet
  2. 如何从零开始训练BERT模型
  3. Arduino与Proteus仿真实例-AT24C256串行(I2C)EEPROM数据存取驱动仿真
  4. DNGuard V1.0 for Win98, WinMe 的运行库发布
  5. javax.accessibility
  6. PS卡通效果插件Photobacks Cartoon Mac汉化破解教程(含注册码)
  7. HashMap源码总结(持续更新中)
  8. java中Static内存图解
  9. 来,打一下五笔的字根表
  10. access下如何配置两个vlan_锐捷三层交换机创建的两个vlan之间怎么样配置能通