Qt下如何编译库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt下如何编译库相关的知识,希望对你有一定的参考价值。

Qt下如何编译库

  一般分为动态库和静态库,方法分别如下:
  一. 静态库的生成
  1. 测试目录: lib
  2. 源码文件名: mywindow.h, mywindow.cpp
  3. 编写项目文件: mywindow.pro
  注意两点:
  TEMPLATE = lib CONFIG += staticlib

  4. 生成Makefile:
  qmake mywindow.pro

  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 test.pro
  6. 编译: make
  7. 运行: ./test
  三. 动态库的生成

  动态库编译基本和静态库类似,需要将上述将要进行编译的项目文件.pro中下面这行去掉

  CONFIG += staticlib
  按上述操作编译完后就可以得到以lib开头并且.so* 结尾动态库文件,一般有多个。
参考技术A 在.pro文件中添加
CONFIG+=shared

把TEMPLATE=app修改为
TEMPLATE=lib

即可生成dll文件
(针对qt creator开发环境)
参考技术B akefile文件。一般是qt里自带的qmake工具。

首先先写好cpp和头文件,在当前目录下依次执行qmake -project,qmake,make即可编译。
另外,团IDC网上有许多产品团购,便宜有口碑
参考技术C 是指创建动态库(dll)吗?如果是的话在建立项目时选择Qt Library就可以了本回答被提问者采纳

win10环境下VTK7.1的编译和Qt调用VTK的详细教程二(VS2013编译支持Qt的VTK库)

本文主要用于编译支持Qt的VTK库,重点在于编译VTK库,供Qt调用。

第1步:新建一个文件夹:vtkDir

第2步:在该文件夹下新建两个文件夹vtk_bin、vtk_src

第3步:将下载好的VTK-7.1.1解压在vtk_src文件夹下

第4步:打开Cmake,分别按照下图进行选择,其中source code选择VTK7.1所在目录, build the binaries是生成的文件所在目录(即vtk_bin目录所在位置)

第5步:点击Configure后,弹出下图所示选项,选择 Visual Studio 12 2013 Win64(笔者电脑是win10 64bit,安装的VS版本是2013 ultimate版)

第6步:点击Finish,自动执行

第7步,待第6步执行完成后,弹出下图所示界面,一定要勾选BUILD_SHARED_LIBS选项(因为本文的目标就是要生成lib库文件,供Qt或者VS调用),Configure

第8步,在Search中输入Qt,找到VTK_Group_Qt,勾选,继续Configure

第9步,中途会出现错误,这是由于Qt版本较高并且Cmake找不到qmake.exe文件导致的

解决办法如下图:1.在VTK_QT_VERSION中选择5版本;2.在QT_QMAKE_EXECUTABLE中选择qmake.exe所在目录,并选中它,然后Configure

第10步:此时出现下图所示错误,不用担心,这是很正常的问题

解决方法:找到Qt所在安装目录,如下图所示,选中Qt5文件夹

 

第11步:继续Configure,会出现类似第10步的问题,一般都是由于找不到目录的原因,按照第10步的解决方法手动找到对应的目录即可(注意,每个人出现的问题可能不同,一般都是Qt5Core_DIR、Qt5Gui_DIR等目录找不到,但解决方法是一样的)

第12步,继续Configure,直到没有红色警告为止。如下图,此时点击Add Entry按钮,在弹出界面进行如下选择,Value值选择msvc2013_64文件夹所在目录

第13步:继续Configure,直到没有红色警告为止,如下图

 

第14步:点击Generate

此时打开vtk_bin所在目录,会发现生成一大堆文件,如下图

 

第15步:以管理员身份打开VS2013,打开项目VTK.sln

 

第16步:如下图,选择Release  x64版本(默认是Debug版本,经过实践发现Qt在调用Debug版本的VTK时会出现错误,因此决定选择Release版本),在解决方案中选择ALL_BUILD,右键

选择“生成”按钮

然后开始进入漫长的编译时期,一般要等待15-30分钟,如下图所示为编译过程,右下角绿色部分为进度条

第17步:编译完成后,如下图所示,会提示编译成功(如出现错误,则删除vtk_bin下的所有文件,重新从第4步开始操作)。

第18步:完成上述步骤后,选择“INSTALL”按钮,右键选择“仅用于项目”,“仅生成INSTALL”,等待20秒钟

 

此时,打开C盘目录,C:\\Program Files\\VTK,发现会有一个VTK文件夹,该文件夹即为生成的vtk库(生成这些文件的关键在于执行第18步,如果没有执行此步骤,虽然前面都成功了,但是找不到该文件夹)

 

以上是关于Qt下如何编译库的主要内容,如果未能解决你的问题,请参考以下文章

win10环境下VTK7.1的编译和Qt调用VTK的详细教程二(VS2013编译支持Qt的VTK库)

如何在 Linux 中存储不同编译的相同库版本?

QT静态库静态编译

win下qt编译librdkafka

Qt 和静态库文件 - 如何编译

如何在VS2015中集成QT5.5