Qt5中生成和使用静态库
在QT中静态库的后缀名为.a,在vs中开发的静态库后缀名为.lib。QT版本为5.2.1,系统为Windows。
一、 静态库的生成
- 新建项目。
新建一个静态库的项目,如图1.1所示:项目名称为test
图 1 新建项目示意图
2.选择项目类型。
选择项目类型为静态链接库,设定项目路径。共享库是创建动态链接库,后缀名为.so,vs上为.dll。
图 2 设置项目类型
3.选择下一步,选择需要的qt模块。
4.选择下一步,设置类和文件名称。
注意类名称为链接库名,在本项目中为test,对应的静态库名称为libtest.a
5.编写静态库代码。
6.构建项目。在正确编码的基础上,得到libtest.a的静态库文件。
在项目中,我们去查看.pro文件可以发现如下语句:
TARGET = test
TEMPLATE = lib
CONFIG += staticlib
如果想要生成对应debug和release版本的静态库可以使用如下语句去替换TARGET:
win32:CONFIG(debug,debug|release):TARGET = testd
else:win32:CONFIG(release,debug|release):TARGET = test
二、静态库的使用
1.新建项目。
2.添加静态库的.h文件和.a文件到项目文件中。
3.添加.h文件到项目中
4.添加.a或者.lib文件到项目中。
在这儿可以通过手动修改pro文件去实现添加。注意格式为使用格式:LIBS += -L[path to lib] -l[name of lib],例如在项目中.a文件存放在当前程序的lib目录下,可以使用如下语句:LIBS += -L$$PWD/lib/ -ltest,其中$$PWD表示当前./,test为静态库的名称。
如果怕出错,可以通过QT自带的功能区实现,如下操作:
(1).点击项目,点击鼠标右键弹出菜单,选择添加库。
(2).选择添加库的类型,分别为外部库、内部库和系统库,这儿我们选择”外部库“,点击”下一步“
(3).制定链接库和包含目录,这儿请根据实际情况选择,这儿平台选择”window“,”静态库“,”为debug添加‘d’的后缀“,在点击“下一步”
(4).这儿就可以看到添加到pro中的语句,确认无误后,选择完成,这样便完成了对静态库的添加。
5.根据实际静态库的内容完成实际操作.
http://www.cnblogs.com/tianzhang/p/4911790.html
Qt5中生成和使用静态库的更多相关文章
- Android NDK生成及连接静态库与动态库
对于Android应用开发,大部分情况下我们使用Java就能完整地实现一个应用.但是在某些情况下,我们需要借助C/C++来写JNI本地代码.比如,在使用跨平台的第三方库的时候:为了提升密集计算性能的时 ...
- 生成lua的静态库.动态库.lua.exe和luac.exe
前些日子准备学习下关于lua coroutine更为强大的功能,然而发现根据lua 5.1.4版本来运行一段代码的话也会导致 "lua: attempt to yield across me ...
- iOS 中 .a 和 .framework 静态库的创建与 .bundle 资源包的使用
iOS 中 .a 和 .framework 静态库的创建与 .bundle 资源包的使用 前言 开发中经常使用三方库去实现某特定功能,而这些三方库通常又分为开源库和闭源库.开源库可以直接拿到源码,和自 ...
- 使用 Xcode 5 生成和使用静态库
本文转载至 http://blog.csdn.net/qq331436155/article/details/18363267 静态库Static Libraryiosxcode 在项目中 ...
- Linux下Gcc生成和使用静态库和动态库详解(转)
一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同( ...
- Linux下Gcc生成和使用静态库和动态库详解
参考文章:http://blog.chinaunix.net/uid-23592843-id-223539.html 一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库 ...
- Linux-Gcc生成和使用静态库和动态库详解
一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同( ...
- 在DLL中导出另一静态库中的函数
开发环境: win7_x64.VS2013 应用场景: 动态库A依赖动态库B,而动态库B又使用了静态库C:有些情况下,我们需要将C从B里面导出,然后提供给A使用. 正文: Step1: 1.新建测试静 ...
- 【转】Linux下gcc生成和使用静态库和动态库详解
一.基本概念 1.1 什么是库 在Windows平台和Linux平台下都大量存在着库. 本质上来说,库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不 ...
随机推荐
- CSS3----background:-webkit-gradient()渐变效果
input[type="button"], input[type="button"]:visited { background: -webkit-gradien ...
- 向着DJANGO奔跑!
这个项目明天上半年要弄好,就牛X了哈哈. 平台化运维.PYTHON,SVN,SALTSTACK,.....一锅端~~:) from django.contrib import admin # Regi ...
- Php官方指导安装与配置
From:http://php.net/manual/zh/install.php 提示:如需在 Windows 平台设置并立即运行 PHP,您还可以:下载 WebMatrix 安装与配置 安装前需要 ...
- 3 Sum 解答
Question Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Fi ...
- 北京Uber优步司机奖励政策(12月3日)
用户组:人民优步(适用于12月3日) 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://w ...
- 04747_Java语言程序设计(一)_第9章_输入和输出流
例9.1一个文件复制应用程序,将某个文件的内容全部复制到另一个文件. import java.io.*; public class Example9_1 { public static void ma ...
- Smart ——jiaoyou模板
<!--{foreach $vip_data as $key=>$volist}--> <!--{if $key==0 ||$key==1||$key==5||$key= ...
- python高级编程之选择好名称:完2
# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #分解代码 #小就是美,这也适用所有级别的代码,当一个函数,类或者一 ...
- 【多线程】--生产者消费者模式--Lock版本
在JDK1.5发布后,提供了Synchronized的更优解决方案:Lock 和 Condition 我们使用这些新知识,来改进例子:[多线程]--生产者消费者模式--Synchronized版本 改 ...
- c# 委托delegate 编写计算器
.Net 中的委托类似于 C 或 C++ 中的函数指针.使用委托使程序员可以将方法引用封装在委托对象内.然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法.与 C 或 ...