1 使用场景

最近做的项目,需要独立出一部分接口,供其他的开发者使用。项目本身是有界面的,即一边开发界面一边开发接口,界面也要使用这些接口。接口开发完成后,生成的.a文件,可以发送给其他开发者使用,这样他们就可以使用接口中的内容,而不能看到其中的代码实现。
下面,介绍一边开发接口 一边开发界面的 Qt Creator实现方式,以及其他开发者只拿到.a时的开发方式.

2 接口-界面同时开发

  1. 创建子目录项目
  2. 右键->新子项目,添加一个Qt Widgets Application,该项目是 界面项目。
  3. 右键->新子项目,添加一个C++ Library项目,该项目是 接口项目

    这一步选择静态链接库

    这里可以先改一下生成文件路径,方便一会找到.a文件
  4. 编写代码
    要实现的效果:Form项目只有1个按钮,调用Core项目的fun函数,fun函数的功能为显示1个提示窗口。
    1)Core项目,因为要用到窗口,所以要修改项目配置文件Core.pro
    QT的位置改为QT += core widgets
    Core项目
//core.h#ifndef CORE_H
#define CORE_H#include <QMessageBox>class Core
{public:Core();void fun();
private:QString text = "core.a中的函数fun";
};#endif // CORE_H//core.cpp
#include "core.h"Core::Core()
{}void Core::fun()
{QMessageBox::information(nullptr, "提示", text);
}

2)在Form项目上,右键->添加库->内部库


3) Form代码
在MainWindow.h中 添加
#include “core.h”
然后在MainWindow.cpp中使用即可

void MainWindow::on_pushButton_clicked()
{Core t;t.fun();
}

3 直接使用.a进行开发

1)在上面项目的bin/Core/release或debug目录下找到libCore.a(推荐release)以及你想要让其使用的接口的.h(可以只保留所有的public变量和方法),发送给其他开发者
2)新建一个新的Qt界面项目,将libCore.a拷贝到项目中,右键->添加库->外部库,找到库文件,链接方式改为静态
3) 在 新项目的mainwindow.h中#include “core.h”
然后在.cpp中

void MainWindow::on_pushButton_clicked()
{Core t;t.fun();
}

Qt静态链接库的使用相关推荐

  1. Qt:55---QT创建和使用静态链接库(.lib、.a)

    一.QT的静态链接库 QT创建一个静态链接库项目,设计各种需要导出的类,包括具有UI的窗体类.对话框类.编译后可以生成一个lib文件(MSVC编译器生成的文件后缀为".lib",M ...

  2. QT生成和使用静态链接库

    目录 1.生成静态链接库 2.使用静态链接库 生成静态链接库,目的有两个:1.加快编译速度,也即:库文件被加入到工程中,无需再次编译,编译器只编译你写的c/cpp,然后与加进来的库进行连接,以生成可执 ...

  3. Visual Studio封装静态链接库至新静态库,供程序调用

    熟悉Windows开发的人都肯定了解静态链接库和动态链接库. 最近遇到一个问题: A静态库是使用VS编译,因为C++版本的问题,并不能直接在Qt中被调用,因为会报头文件某处错误. 因为A库很大,同时又 ...

  4. 使用Visual studio中创建C++的静态链接库.lib文件附使用方式

    如何在Qt中使用静态库.lib(和VS一样,仅仅是操作方式略有差异) 如何在VS中创建.dll动态链接库.dll中函数与类的导出用__declspec(dllexport) 如何在Qt和VS中使用动态 ...

  5. Linux gcc 制作动/静态链接库

    gcc 静态链接库 以 math.c为例 gcc -c math.c ar rcs libmath.a math.o ar命令 将多个文件打包成一个备份文件 参数r:用来替换库中已有的目标文件,或加入 ...

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

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

  7. 静态链接库与动态链接库 (二)动态链接库的编译与使用

    上一篇文章里大概描述linux下静态链接库的编译与使用,下面讲动态链接库的编译与使用方法. 1. 什么是动态链接库 所谓动态链接库,是指编译的时候不会把程序引用到的库插入到执行程序里,而是在执行时候才 ...

  8. 【转载】linux静态链接库与动态链接库的区别及动态库的创建

    这篇文章对于动态库的概念及使用介绍的很不错,故收藏了. 一.引言 通常情况下,对函数库的链接是放在编译时期(compile time)完成的.所有相关的对象文件(object file)与牵涉到的函数 ...

  9. 制作静态链接库和动态链接库

    自己制作静态链接库 首先使用gcc -c只编译不连接,生成.o文件,然后使用ar工具进行打包成.a归档文件. 1.1 建立一个源文件和头文件 .C文件: #include <stdio.h> ...

最新文章

  1. 基于OpenSSL安全会话的实现
  2. 简单的防盗链技术(过滤器原理)
  3. Stream流思想和常用方法
  4. redis的lrange_thinkphp5操作redis系列教程】列表类型之lRange,lGetRange
  5. getopt在Python中的使用
  6. LeetCode 第 20 场双周赛(294 / 1541,前19.07%,第1次全部通过)
  7. 树莓派 摄像头 php,树莓派3 之 USB摄像头安装和使用
  8. android 9 pie公司,Android 9.0正式推送 定名Android Pie
  9. HDU 3584 三维树状数组
  10. 计算机编程—必备基础知识点
  11. WIN10安装SQL SERVER 2005 服务无法启动
  12. 索菲对讲机写频软件_万能对讲机写频软件
  13. 计算机上创建表格,Word 2007中插入表格或创建表格 -电脑资料
  14. 波奇C语言模拟通讯录设计
  15. 多wan口路由虚拟服务器,简单的多WAN路由器带宽聚合功能测试方案
  16. discus mysql 性能_百万纪录级mysql数据库以及discuz!优化
  17. 企业闪存应用八年回顾
  18. 【图像识别】基于BP神经网络和RGB颜色空间实现人民币识别系统matlab代码
  19. 现有的自动生成电路的软件有哪些?
  20. W530安装外置N显卡,实现3显卡同时使用

热门文章

  1. 微信小程序-使用云函数获取微信的openid
  2. 集中精力,做有意义的事情
  3. Android 蓝牙 IOS ANCE协议介绍 - 史上最详细
  4. 2019-12-27
  5. 浅谈【Stable-Diffusion WEBUI】(AI绘图)的基础和使用
  6. 程序员必懂的程序设计原则
  7. Vue2.0开发之——webpack基础-SourceMap(11)
  8. C语言基础知识(三)-程序设计结构、数组、字符串处理函数
  9. spdlog封装自己的日志库
  10. Squid代理服务器配置及CDN简介