在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. C#语言之“中英文混合字符串对齐”的方法【转】

    参考自:(1)http://www.cnblogs.com/cnluoke/articles/1213398.html (2)http://www.cnblogs.com/sql4me/archive ...

  2. < welcome > 一起学习,进步,分享。

    现在时间:2014-3-24 hello world my blog. 第一次做博客,欢迎各路朋友指教.慢慢的分享学习到得东西,本人目前正在做IOS,也在学习数据库简单地应用. 作为一个IOS开发者, ...

  3. HDU1394 Minimum Inversion Number(线段树OR归并排序)

    Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java ...

  4. python list 中找连续的数字(由网友处学习)

    # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #学习这个要求的:http://wsky.org/archives/ ...

  5. Hibernate框架增删改查测试类归为一个类

    package cn.happy.test; import org.hibernate.Session; import org.hibernate.SessionFactory; import org ...

  6. 要理解javascript中间apply和call

    apply和call它是javascript一个非常重要的方法,.虽然与程序平时很少接触,但JS到处都在使用这个框架2方法. 2个方法是在Function.prototype中.也就是说每一个JS函数 ...

  7. Cts框架解析(8)-IBuildProvider

    IBuildProvider接口中定义了三个方法 /* * Copyright (C) 2010 The Android Open Source Project * * Licensed under ...

  8. K贪心

    <span style="color:#330099;">/* K - 贪心 基础 Time Limit:1000MS Memory Limit:32768KB 64b ...

  9. 关于js中select的简单操作,以及js前台计算,span简单操作

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  10. oracle开启/关闭归档模式

    1.改变非归档模式到归档模式: 1)SQL> conn / as sysdba (以DBA身份连接数据库) 2)SQL> shutdown immediate;(立即关闭数据库) 3)SQ ...