在QT中静态库的后缀名为.a,在vs中开发的静态库后缀名为.lib。QT版本为5.2.1,系统为Windows。

一、 静态库的生成

  1. 新建项目。

   新建一个静态库的项目,如图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中生成和使用静态库的更多相关文章

  1. Android NDK生成及连接静态库与动态库

    对于Android应用开发,大部分情况下我们使用Java就能完整地实现一个应用.但是在某些情况下,我们需要借助C/C++来写JNI本地代码.比如,在使用跨平台的第三方库的时候:为了提升密集计算性能的时 ...

  2. 生成lua的静态库.动态库.lua.exe和luac.exe

    前些日子准备学习下关于lua coroutine更为强大的功能,然而发现根据lua 5.1.4版本来运行一段代码的话也会导致 "lua: attempt to yield across me ...

  3. iOS 中 .a 和 .framework 静态库的创建与 .bundle 资源包的使用

    iOS 中 .a 和 .framework 静态库的创建与 .bundle 资源包的使用 前言 开发中经常使用三方库去实现某特定功能,而这些三方库通常又分为开源库和闭源库.开源库可以直接拿到源码,和自 ...

  4. 使用 Xcode 5 生成和使用静态库

      本文转载至 http://blog.csdn.net/qq331436155/article/details/18363267   静态库Static Libraryiosxcode   在项目中 ...

  5. Linux下Gcc生成和使用静态库和动态库详解(转)

    一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同( ...

  6. Linux下Gcc生成和使用静态库和动态库详解

    参考文章:http://blog.chinaunix.net/uid-23592843-id-223539.html 一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库 ...

  7. Linux-Gcc生成和使用静态库和动态库详解

    一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同( ...

  8. 在DLL中导出另一静态库中的函数

    开发环境: win7_x64.VS2013 应用场景: 动态库A依赖动态库B,而动态库B又使用了静态库C:有些情况下,我们需要将C从B里面导出,然后提供给A使用. 正文: Step1: 1.新建测试静 ...

  9. 【转】Linux下gcc生成和使用静态库和动态库详解

    一.基本概念 1.1 什么是库 在Windows平台和Linux平台下都大量存在着库. 本质上来说,库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不 ...

随机推荐

  1. CSS3----background:-webkit-gradient()渐变效果

    input[type="button"], input[type="button"]:visited { background: -webkit-gradien ...

  2. 向着DJANGO奔跑!

    这个项目明天上半年要弄好,就牛X了哈哈. 平台化运维.PYTHON,SVN,SALTSTACK,.....一锅端~~:) from django.contrib import admin # Regi ...

  3. Php官方指导安装与配置

    From:http://php.net/manual/zh/install.php 提示:如需在 Windows 平台设置并立即运行 PHP,您还可以:下载 WebMatrix 安装与配置 安装前需要 ...

  4. 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 ...

  5. 北京Uber优步司机奖励政策(12月3日)

    用户组:人民优步(适用于12月3日) 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://w ...

  6. 04747_Java语言程序设计(一)_第9章_输入和输出流

    例9.1一个文件复制应用程序,将某个文件的内容全部复制到另一个文件. import java.io.*; public class Example9_1 { public static void ma ...

  7. Smart ——jiaoyou模板

    <!--{foreach $vip_data as $key=>$volist}-->    <!--{if $key==0 ||$key==1||$key==5||$key= ...

  8. python高级编程之选择好名称:完2

    # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #分解代码 #小就是美,这也适用所有级别的代码,当一个函数,类或者一 ...

  9. 【多线程】--生产者消费者模式--Lock版本

    在JDK1.5发布后,提供了Synchronized的更优解决方案:Lock 和 Condition 我们使用这些新知识,来改进例子:[多线程]--生产者消费者模式--Synchronized版本 改 ...

  10. c# 委托delegate 编写计算器

    .Net 中的委托类似于 C 或 C++ 中的函数指针.使用委托使程序员可以将方法引用封装在委托对象内.然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法.与 C 或 ...