云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > Qt编译控制之C++库

Qt编译控制之C++库

  • 62 次阅读
  • 3 次下载
  • 2025/5/25 9:03:59

Qt编译、生成、调用 库文件

一、生成Pro文件

二、生成Makefile文件(mingw32-make,mingw32-make release)

Mingw的make工具好像不叫Make,而是mingw32-make)

三、生成库文件

说明:

vs200x生成的是*.lib和*.dll,(msvc) mingw生成的是*.a 和*.dll,(mingw)

,但mingw中可以调用vs200*中生成的*.lib和*.dll,且*.lib和*.a也可以相互转换(reimp) lib是由lib.exe把*.obj生成的lib。 a 是由mingw.exe把 .o生成 .a GCC和VC都使用COFF格式,所以VC中的.obj .lib与gcc用的.o .a是一样的(在WINDOWS下),两种静态库*.lib/*.a可以相互转换, 使用reimp和dlltool 进入cmd下

cd c:\\mysql\\lib\\opt

reimp -d libmysql.lib

dlltool -k -d libmysql.def -l libmysql.a

只是扩展名不一样,通常你只要改一下名称就OK啦!不过有些库不行,因为库中的代码可能会用到一些编译器专有的特性,用VC做的.lib可能在gcc下没法通过编译(缺少符号),反之亦然。

1、静态库。.a生成及应用

一. 静态库的生成 1. 测试目录: lib

2. 源码文件名: mywindow.h, mywindow.cpp, 类MyWindow继承于QPushButton, 并将 文字设置为\ 3. 编写项目文件: mywindow.pro 注意两点: TEMPLATE = lib CONFIG += staticlib 4. 生成Makefile: qmake

5. 编译生成静态库libmywindow.a make

二. 静态库的使用 1. 测试目录: test

2. 将mywindow.h与libmywindow.a拷贝至test目录下

3. 编写main.cpp, 包含头文件mywindow.h, 并调用MyWindow类 4. 编写项目文件: test.pro 注意加上库路径与库文件名: LIBS += -L ./ -lmywindow 5. 生成Makefile: qmake 6. 编译: make 7. 运行: ./test

2、动态共享库。.dll生成及应用

如果你打开一些 Windows 应用程序的目录,你会发现有很多程序的 exe 文件都很小,大约几百K 的样子,并且目录中不仅仅只有一个 exe 文件,还包含着一大堆 dll 文件。这些 dll 其实就是一些共享库,所谓共享库,其实就是一些动态链接库,能够由程序在运行时进行动态加载的库。既然说是共享,那就是说,这些库不仅仅自己的程序可以使 用,并且其他程序也可以使用,例如某些通用算法。如果你发布一下自己编写的 Qt 程序,也会看到很多系统的共享库,就是那些 QtGui.dll 之类的东西。或许你会说,我写的程序没有同其他应用共享的库,就不需要这些了吧!其实不然。因为共享库的一个好处是可以动态加载,也就是说,如果你需要升 级程序,那么就要简单的替换掉这个 dll 就好了,不需要要求用户重新安装全部文件。当然,这些 dll 也是有缺点的:动态加载的东西肯定会比静态编译的东西效率低一些。不过在现在的硬件环境下,这点性能损失已经可以忽略不计了。 今天我们要说的就是如何用 Qt 创建共享库代码。

我们还是使用 QtCreator。在创建工程的时候,我们选择下面的 C++ Library 一项,然后点击 OK。

在接下来的对话框中,有一个下拉列表,分别是 Shared Library(共享库),Statically Linked Library(静态链接库)和 Qt 4 Plugin(Qt 4 插件)。我们选择第一个共享库,后面的步骤中会要求选择加入哪几个 Qt 模块,和前面一样,选择自己需要的部分,最后完成工程的创建。

搜索更多关于: Qt编译控制之C++库 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

Qt编译、生成、调用 库文件 一、生成Pro文件 二、生成Makefile文件(mingw32-make,mingw32-make release) Mingw的make工具好像不叫Make,而是mingw32-make) 三、生成库文件 说明: vs200x生成的是*.lib和*.dll,(msvc) mingw生成的是*.a 和*.dll,(mingw) ,但mingw中可以调用vs200*中生成的*.lib和*.dll,且*.lib和*.a也可以相互转换(reimp) lib是由lib.exe把*.obj生成的lib。 a 是由mingw.exe把 .o生成 .a GCC和VC都使用COFF格式,所以VC中的.obj .lib与gc

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com