当前位置:文档之家› Qt静态库的下载和安装配置

Qt静态库的下载和安装配置

Qt静态库的下载和安装配置
Qt静态库的下载和安装配置

Qt静态库的下载和安装配置

(2015.01.19 by Winland)

在Windows下使用Qt开发最后都是要发布程序的,Qt官方的库都是动态链接库,如果发布就需要一大堆的dll,而且还要记得复制plugins/platforms里面的插件,如果用到各种格式图片还要plugins/imageformats里面的插件,所以东西会越弄越多。针对Windows部署基于Qt的软件,Qt官方有专门文档:

http://doc.qt.io/qt-5/windows-deployment.html

对于动态版本程序发布,官方Qt库里面也带了专门部署工具:QTDIR/bin/windeployqt ,这个本人也没用过,感兴趣的可以自己试试。

本文主要讲Qt静态库的下载、安装和配置使用。使用静态Qt编译的程序只需要一个exe文件,就可以走遍天下都不怕。可以自己根据Qt的源代码编译自己的静态版本Qt库,但这个过程非常耗费时间,而且如果有问题还要重新编译,比较麻烦。幸好网上有现成编译好的静态库,所以给新手和懒人提供了方便。

一、Qt Static Builds 下载

在网上寻找Qt静态库,就搜索Qt Static Builds ,目前找到两个地方有:

https://www.doczj.com/doc/b112207590.html,/projects/static-qt/

https://https://www.doczj.com/doc/b112207590.html,/fostersoftware/QtStaticWindows

第一个是SourceForge上的项目,第二个是GitHub上的项目,这两个网站希望新手记牢了,以后要找好东西都可以去这两个网站。

GitHub上面的QtStaticWindows比较新,是5.3.2版本的,所以就选这个来做教程示范。

从GitHub网站下载东西,可以直接点击网页右边“Download ZIP”

但是这个下载可能比较卡比较慢,也可能挂掉。推荐的是安装git工具,新建QtStatic目录,在该目录里执行命令:

git clone https://https://www.doczj.com/doc/b112207590.html,/fostersoftware/QtStaticWindows.git

然后等待下载完成,文件就会出现在QtStaticWindows子目录里面。

国外网站速度慢正常,所以本人打包好了一个放在百度网盘分享:

https://www.doczj.com/doc/b112207590.html,/s/1nt3d0jZ

位于QtSDK/QtStatic/QtStaticWindows5.3.2.7z

从百度网盘下载即可。

QtStaticWindows5.3.2.7z里面仅仅包含静态编译的Release版Qt库,

仅用于生成程序发布,不便于调试,这个文件里面也没有开发环境,仅仅是一个库。所以要配合Qt官方的开发环境来使用,集成到官方QtCreator里面用。

目前Qt最新的官方开发环境下载页面:

http://download.qt.io/official_releases/qt/5.4/5.4.0/

下载MinGW版本:qt-opensource-windows-x86-mingw491_opengl-5.4.0.exe

也可以从刚才的网盘链接下载:https://www.doczj.com/doc/b112207590.html,/s/1nt3d0jZ

位于QtSDK/Qt5/qt-opensource-windows-x86-mingw491_opengl-5.4.0.exe

安装官方Qt开发环境时,记得把全部组件都选中安装!

二、Qt静态库安装

1、Qt官方开发环境安装

运行qt-opensource-windows-x86-mingw491_opengl-5.4.0.exe

点击下一步,

可以使用默认路径,如果C盘空间不够就装其他盘根目录。点击下一步,

选择组件界面里,默认没有选中源代码组件和MinGW编译调试环境,

点击“全选”按钮,把所有组件都选中(Tools/MinGW4.9.1必须要装),点击下一步,

选择agree,点击下一步,

这是开始菜单设置,点击下一步,

点击安装,等待安装完成,点击下一步,

点击完成,会打开QtCreator。把QtCreator最小化,等会配置。

2、QtStaticWindows安装

将QtStaticWindows5.3.2.7z直接解压到比如C:\Qt,也可以放在其他分区。

这时候qmake.exe位置是:C:\Qt\QtStaticWindows\5.3.2\bin\qmake.exe

检查C:\Qt\QtStaticWindows\5.3.2\bin\ 有没有qt.conf文件,

从GitHub直接下载的QtStaticWindows是没有qt.conf文件,如果bin目录没有,

那么从C:\Qt\Qt5.4.0\5.4\mingw491_32\bin目录复制一个到静态库的bin目录。

三、Qt静态库的配置

1、Qt Versions配置

Qt官方开发环境和静态库都安装了,还要把静态库集成到QtCreator里面。

打开QtCreator的菜单“工具”--》“选项”,

然后对话框左边选择“构建和运行”,

在构建和运行页面,右边选择“Qt Versions”,

点击右上角“添加”,会弹出查找qmake.exe的对话框,找到刚才装的

C:\Qt\QtStaticWindows\5.3.2\bin\qmake.exe

点击确定,就看到新的Qt库:

点击右下角Apply按钮,应用配置。

注意一个问题,如果静态库bin目录没有qt.conf文件,会出现如下错误:

"Qt没有被正确安装,请运行make install"

可以按照:https://www.doczj.com/doc/b112207590.html,/andy65007/p/3493309.html修复问题,

或者按照前面说的复制一个qt.conf到静态库bin目录,然后重新尝试添加静态库。

2、构建套件(Kit)配置

还是刚才的配置对话框,在构建运行配置页面,点击“构建套件(Kit)”,

点击右上角“添加”,

修改名称为QtStatic,修改Qt 版本为刚才添加的Qt 5.3.2 (5.3.2) ,

编译器就用默认的MinGW,调试器用默认的gdb。

然后点击“Apply”按钮,再点击“OK”。

3、新建项目测试

打开QtCreator菜单“文件”--》“新建文件或项目”,

选择Qt Widgets Application,点击“Choose”,

用默认的路径,点击下一步进入Kit Selection

两个都选上,第一个是官方Qt库,第二个是Release版静态Qt库。然后点下一步,点完成。

进入代码编辑主界面:

点击左下角Debug字样,会弹出编译套件选择和编译版本选择:

一般使用官方Qt库的Debug版本编译并调试程序,在确认没有问题之后,

选择QtStatic + Release 编译方式,生成可发布的exe程序。

比如上面例子的就在项目路径..\build-untitled-QtStatic-Release\release\untitled.exe

这里生成的是14.1MB,直接双击可以运行,不需要配置依赖,也没什么依赖。

4、(可选)压缩exe后再发布

如果嫌14.1MB还大,那就用UPX Shell压缩一下,

压缩之后只有7.38 MB,也是可以独立运行的,可以无脑发布了。工具UPX Shell也放到之前的百度网盘分享里面,读者可以试试看。

netcdf4.1.3安装后环境变量设置以跟Qt下使用静态动态库方法新

netcdf4.1.3安装后环境变量设置以及Qt下使用静态动态库方法一.netcdf4.1.3安装后环境变量设置 1.下载netcdf安装包,from: https://www.doczj.com/doc/b112207590.html,/downloads/netcdf/index.jsp 我下载的是版本4.1.3 2.解压tar -zxvf netcdf-4.1. 3.tar.gz 3. 在解压后的netcdf- 4.1.3所在目录执行: ./configure --disable-dap --disable-netcdf-4 --prefix=/usr/local/netcdf 注意:上面红色的两个选项是他人很多次实验后证明必须的(参考资料1)。--disable-dap的原因是缺少一个‘curl’的lib,--disable-netcdf-4是报错中提出的解决办法,尽管我个人暂时没有搞清楚为什么。不写这两个,在configure的时候就会报错,导致后面make失败。 4. make 5. make install,提示安装成功的同时,还会提醒make check,下一步进行。 6. make check 安装完成后,/usr/local/netcdf/文件夹下存在4个文件,分别为bin,include,lib和share

安装完成后,注意环境变量的设置 打开终端输入sudo ~/.bashrc 在最后添加 export PATH=/home/swh/NSForWoss/DESERT_all_in_one_1.0.0/netcdf/bin:/$P ATH export LD_LIBRARY_PATH=/home/swh/NSForWoss/DESERT_all_in_one_1.0 .0/netcdf/lib:/$ LD_LIBRARY_PATH export DYLD_LIBRARY_PATH=/home/swh/NSForWoss/DESERT_all_in_one _1.0.0/netcdf/lib:/$ DYLD_LIBRARY_PATH

Qt显式调用dll

Qt显式调用C++写的dll 这些天在做一个工程,要用到Qt,所以特别研究了一下Qt显式调用链接库的问题。隐式调用就不那么想用了,个人感觉隐式调用既浪费内存,造成程序启动速度极慢,又容易造成链接错误(本人在ogre中深受链接错误之苦),所以只用了显式调用。以前只试过在MFC 中显式调用dll,在Qt上还没试过。其实细细研究一下,相对于MFC的调用来说,Qt的调用也是大同小异的。在这里分享一下。 首先用VS写一个dll先(名字为QtDllTest)。写dll最大的问题就是解决导出函数重命名问题。其中解决方法是多种多样的。本人只用自己最常用一种——用模块定义文件.def。 第一步,写一个dll,简单写一个测试加法函数的: int add(int a,int b) { return a+b; } 之后添加一个模块定义文件QtDllTest.def: LIBRARY "QtDllTest" EXPORTS add 之后顺利生成dll. 现在可以利用dll函数导出工具DLL Export Viewer查看刚才生成的dll中的导出函数:

发现,导出函数名字没有乱码,说明导出函数正常。现在,就以这个dll为例来试着用Qt调用。 新建一个名为QtDllTestDemo的Qt Application: 默认,下一步 继续下一步:

Finish就行了。反正一切默认就行。 在ui界面中加入一个pushButton(ObjectName:CalButton,Text:Calculate),一个Label 控件(Text:Result),一个lineEdit控件(ObjectName:Result),主要是在点击按钮后调用dll并计算把计算结果显示在文本框中,如下图所示: 为了顺利使用dll,我们要在qtdlltestdemo.cpp开始包含这个东西:#include 下面给pushButton添加click响应事件: void QtDllTestDemo::on_CalButton_clicked() {

怎么把qwt添加到qt中使用

标题:如何在QT中运行QWT 作者:胡振凯 日期:2014/8/16 修改ver.1 2014/8/23 运行环境win8.1专业版。 目的:QT中的GUI库不全,使用QWT库可以编程更容易。 从使用QT,到添加QWT库步骤: 1.Download Qt 5.3.1 for Windows 32-bit (MinGW 4.8.2, OpenGL, 735 MB) (Info) , 并安装到D:\Qt中(默认为C盘,但我不喜欢什么都放C里)。 ●下载过VS2013版本,运行nmake时出现错误,找不到stddef.h文 件。 2.修改环境变量的系统变量的path ●打开控制面板,系统,高级设置,环境变量,path ●添加D:\Qt\Qt5.3.1\5.3\mingw482_32\bin,(包含qmake.exe) ●添加D:\Qt\Qt5.3.1\Tools\mingw482_32\bin (包含mingw32- make.exe) 3.Google搜索qwt,进入官网,下载并解压qwt-6.1.0。(下载到哪都无所 谓)。 4.修改qwtconfig.pri文件。修改安装后路径。(我要把qwt安装到d:\Qwt- 6.1.0中,默认是c盘。) ●win32 {QWT_INSTALL_PREFIX = d:/Qwt-$$QWT_VERSION} 5.启动qt命令行程序(类似win dos的那个东东),compile & install qwt文 件。Qwt下载下来的都是源代码,要做成lib和dll文件,就需要编译和安装(拷贝)两个步骤。 ●进入qwt-6.1.0路径,输入命令qmake。在路径下生成makefile文件。 ●输入命令mingw32-make,编译所有cpp文件。 ●输入命令mingw32-make install,按照qwtconfig.pri的文件设置,输 出到安装(拷贝)目录d:/Qwt-6.1.0。 6.设置环境变量的系统变量,添加path,D:\Qwt-6.1.0\lib。很多人把编译好 的文件拷贝到qt库文件夹下。其实,只要设置系统变量的path,编译程序就会查找这个文件夹了,所以不用拷贝来拷贝去的。

用Qt生成dll类库及调用方法

用Qt生成dll类库及调用方法 (2010-08-16 11:01:01) 转载▼ 标签: 教育 .NET2005: 空白工程新建DLL后,将DLL和LIB文件放入需要调用的“指定目录” 项目-》属性->连接器-》常规-》附加库目录->添加“指定目录” 项目-》属性->连接器-》输入-》附加依赖项->添加“LIB文件” 添加头文件到项目中,则DLL可用! VC6.0: 使一个项目编译生成DLL库而不生成可执行文件: 删除main()方法; 将.pro项目文件中的TEMPLATE = app改为TEMPLATE = lib。 然后编译,此时生成的就是.a和.dll的文件。 在另一个项目中调用此DLL: 在项目文件中添加LIB。如添加此行:LIBS += "D:\workspace\MRP_Common\debug\common.dll" (common.dll既是上面生成的DLL);复制dll中类或方法的头文件到该项目中,并在要调用common.dll中类或方法的文件上面include; make,在debug目录中生成可执行文件,然后将dll复制到debug中,运行。 例子: ########################### 生成DLL的工程: ####################### 修改pro文件: TEMPLATE=lib ########################### .h文件 ####################### #ifndef DLLTEST_H #define DLLTEST_H #ifdef Q_WS_WIN #define MY_EXPORT __declspec(dllexport)

Qt 创建List, 添加删除Item

#ifndef LISTWINDOW_H_ #define LISTWINDOW_H_ #include class QPushButton; class QListWidget; class QWidget; class ListWindow : public QDialog { Q_OBJECT public: ListWindow(QWidget *parent = 0); virtual ~ListWindow(); public slots: void moveLeft(); void moveRight(); private: QPushButton *moveLeftButton; QPushButton *moveRightButton; QListWidget *leftList; QListWidget *rightList; }; #endif/**//*LISTWINDOW_H_*/ #include"ListWindow.h" #include #include #include #include #include #include #include #include ListWindow::ListWindow(QWidget *parent) : QDialog(parent) { QGridLayout *gridLayout = new QGridLayout(); gridLayout->addWidget(leftList = new QListWidget(), 0, 0, 3, 1); gridLayout->addWidget(moveLeftButton = new QPushButton("<<"), 0, 1, 1, 1); gridLayout->addWidget(moveRightButton = new QPushButton(">>"), 1, 1, 1, 1); gridLayout->addWidget(rightList = new QListWidget(), 0, 2, 3, 1); QObject::connect(moveLeftButton, SIGNAL(clicked()), this, SLOT(moveLeft())); QObject::connect(moveRightButton, SIGNAL(clicked()), this, SLOT(moveRight())); QStringList items; items << "One" << "Two" << "Three" << "Four" << "Five" << "Sechs" << "Sieben" << "One" << "Two" << "Three" << "Four" << "Five" << "Sechs" << "Sieben"; leftList->addItems(items); this->setLayout(gridLayout); }

Qt里添加OpenCV库

Qt里添加OpenCV库 0、新建一个控制台工程 唯一需要注意的是选择编译器,这一定要和你的opencv下载的编译版本一致!我下载的opencv是msvc2015编译的64位所以这里一定要选择相同的! 1、新建的工程点右键,选择添加库,如下图:

2、选择外部库 3、找到Opencv解压目录下的opencv\build\x64\vc15\lib\opencv_world401.lib 添加include 路径opencv\build\include,具体操作看下图: 特别需要注意的是:需要把opencv\build\x64\vc15\lib\bin目录添加到环境变量里Path里

4.点击确定后,工程文件*.pro里会添加如下内容: win32:CONFIG(release,debug|release):LIBS+= -LD:/opencv/build/x64/vc15/lib/-lopencv_world401 else:win32:CONFIG(debug,debug|release):LIBS+= -LD:/opencv/build/x64/vc15/lib/-lopencv_world401d else:unix:LIBS+=-LD:/opencv/build/x64/vc15/lib/-lopencv_world401 INCLUDEPATH+=D:/opencv/build/include DEPENDPATH+=D:/opencv/build/include 5.保存工程,执行qmake,更新工程make文件。这一步很重要,新手往往忘记这一步导致不能使用!!

QT5编写和调用DLL动态库的终极实践

QT5编写和调用DLL动态库的终极实践如今,使用QT编程的人越来越多,但由于缺乏相关的中文文档,使得大家在学习的过程中偶有碰壁,网上的大多也有疏漏税,即使照着做也未必能成功。今天给大家讲讲QT5.02编写和调用DLL动态库的编程实践,按照以下方法可以确保你对DLL编写和调用少走变路。步聚一: 编写所需的DLL文件,如下图创建C++库文件工程。类型选择此处选的是动态库。工程名dll,生成的类名为Dll。

如下图,在dll.h 头文件中加入函数SHOW。 在dll.cp中编写该函数的实现。此处我让函数打开一个窗口并在应用程序输出中输出“OK”字符。顺便讲一下在DLL编写时如何加入容积资源文件。依次点击“文件”菜单选择“新建文件或项目”然后如图选择“QT设计师界面类”

生成的文件及类名如下图: #include"dll.h"

#include"qdebug.h" #include"dialog.h" Dll::Dll() { } void Dll::show(){ Dialog*wi=new Dialog(); wi->show(); qDebug()<<"ok"; } 到这里,DLL文件的编写结束。最后一步就是构建该程。在该程名字上点鼠标右键,再选择构建。 接下来编写测试工程,类型为QT GUI应用。工程名字为PO,

在po.pro文件中加入LIBS+=..\dll.DLL,完整代码如下: #------------------------------------------------- # #Project created by QtCreator2013-08-06T10:19:12 #LIBS+="D:\c\po\dll.dll" #------------------------------------------------- QT+=core gui greaterThan(QT_MAJOR_VERSION,4):QT+=widgets TARGET=po TEMPLATE=app LIBS+=..\dll.DLL SOURCES+=main.cpp\ mainwindow.cpp HEADERS+=mainwindow.h\ dll.h\ dll_global.h FORMS+=mainwindow.ui 在mainwindo.ui加一个按纽,并添加单击槽函数。完整代码如下: #include"mainwindow.h"

QT问题集锦-从学习Qt遇到地各种问题

第一篇初级问题 1 用Qt4.8.5打不开冯工柏菲软件 问题描述:运行环境为Qt4.8.5 + QtCreator3.0.0+VS2010专业版 + Debuging Tools for Windows(x86),用Creator无法打开项目文件,截图如下: 弹出错误:Cannot read E:/PROJECT/Zhou-0410/testToolbar.pro: Unexpected UTF-8 BOM 原因分析:未知 解决方法: 1 安装VS2010SP1,未解决 2 安装VS-Add,未解决 3 使用Creator2.6解决 2 编译失败,系统找不到指定路径 问题描述:见下图

原因分析: 1)可能:添加VS编译器环境变量,在PATH中添加VS 中NMAKE路径 2)确定:Creator或编译器无法识别&符号,即路径原文件名为R&T中含有非法字符,无法准确识别路径 3)默认的环境变量已经有了NMAKE路径 解决方法:把路径中非法字符删除即可 3 编译出现乱码,Parse Error 原因分析:未知,应该是非法字符导致。 4 无法解析的外部符号 原因分析:声明的函数,未实现,或在未实现它的情况下调用了它 解决方法:实现后再调用 5 中文乱码 问题描述:见图

解决方法:转换成utf8格式 6 控件背景图片添加 问题描述:按照相对路径添加背景图片不显示解决方法: 1)相对路径起始点为构建目录,如图

2)添加资源文件,把背景图片放到资源文件中,再通过控件属性,指定资源文件中的背景图片即可。 7 昨天能启动运行成功,今天说异常结束,运行不了 原因分析:可能是昨天在windows、system32里面添加了qtcore.dll等文件导致 解决方法:删除之后就可以运行了,但具体删除哪个,待定 8 通过控件,查找操作函数? 9 修改控件名称时,弹出外部链接错误 解决方法:修改名称后,通常有以下步骤 1)在头文件中删除对应槽; 2)修改槽动作名称或重新生成槽动作,把之前代码拷贝到新槽动作中。 10 Qt数据类型转换 1)int 转 QString int a=10;

VS使用QT5.2.1动态库的方法

使用QT创建项目需更改VS2013配置,操作步骤如下: 1、打开VS2013,点击菜单栏中“QT5”->选择“Qt Option”,弹出如下窗口: 2、添加QT静态库文件路径,并选择对应版本。 2、单击“QT5”->选择“Qt Project ”,弹出如下窗口,选择Version为静态库版本。

3、右键QT项目,选择“属性” 弹出如下窗口: 如图上红框所示,配置该选项。 4、右键QT项目,选择“属性”,弹出如下窗口:

如图红框所示配置信息,【附加依赖项】配置为: PocoFoundationd.lib;AfcFrameworkd.lib;DevBased.lib;imm32.lib;winmm.lib;Ws2_32.lib;open gl32.lib;qwindowsd.lib;Qt5PlatformSupportd.lib;wsock32.lib;qtmaind.lib;Qt5Cored.lib;Qt5Gu id.lib;Qt5Widgetsd.lib;%(AdditionalDependencies) 5、右键QT项目,选择“属性”,弹出如下窗口: 如图红框所示配置信息,【附加库目录】配置为: $(QTDIR)\plugins\platforms;$(QTDIR)\lib;%(AdditionalLibraryDirectories)

6、QT项目启动cpp中加入如下: 如图红框代码: #include #include"Poco/Foundation.h" #ifdef POCO_OS_FAMILY_WINDOWS Q_IMPORT_PLUGIN( QWindowsIntegrationPlugin ); #endif

Qt加载dll

QT加载第三方库 一、(动态)显示加载(只需要.dll,不需要.lib/.h) A)将.dll放到编译目录下,例如: build-TestLoadDll-Desktop_Qt_5_5_0_MinGW_32bit-Debug B)包含头文件. #include C)在Windows下程序显示调用dll的步骤分为三步(三个函数):LoadLibrary()、GetProcAdress()、FreeLibrary() 第一步:QLibrary mylib("Trf32.dll"); //声明所用到的dll文件 第二步:判断dll是否加载成功if(mylib.load()) 第三步:mylib.resolve("DC_init_comm") //援引DC_init_comm()函数 第四步:卸载库mylib.unload(); void MainWindow::on_pushButton_clicked() //开启设备 { typedef long(*Fun)(const char*,unsigned long); QLibrary mylib("Trf32.dll");//声明所用到的dll文件 long result; if(mylib.load())//判断是否正确加载 { QMessageBox::information(NULL,"OK","DLL load is OK!"); Fun open=(Fun)mylib.resolve("DC_init_comm");//援引DC_init_comm()函数 if(open) //是否成功连接上DC_init_comm()函数 { //QMessageBox::information(NULL,"OK","Link to Function is OK!"); result=open("COM1",115200); //函数指针调用dll中的DC_init_comm()函数 QMessageBox::information(NULL,"OK",QString::number(result,10)); //如果返回数小于0则通讯失败这里返回-1 mylib.unload();//卸载库 } else QMessageBox::information(NULL,"NO","Linke to Function is not OK!!!!"); } else QMessageBox::information(NULL,"NO","DLL is not loaded!"); } Generalreader.dll

给Qt应用程序添加图标文件ico setWindowIcon

给Qt应用程序添加图标文件ico setWindowIcon 1:通过qmake生成makefile实现过程: (1) 找到一张图片.ico,名字改为myappico.ico;注意:Qt5.2中ico文件是256 * 256。 (2) 创建一个新的文本文档,内部添加 IDI_ICON1 ICON DISCARDABLE "myappico.ico" 并将文件重命名为myapp.rc; (3) 在myapp.pro文件最后加上RC_FILE = myapp.rc,重新生成之后,就修改成功了 2.不用qmake生成makefile实现过程: 前面两步骤一样,最后一步改为,将.rc文件加载至工程中,通过右键工程——添加——已存在文件,添加后右键.rc文件编译,重新生成可执行文件后就修改成功了 1.设置应用程序运行时所有窗口默认图标, QApplication a(argc, argv); //获得可执行程序路径 QString dir = QApplication::applicationDirPath(); 1.//设置可执行程序路径为当前工作路径 2.QDir::setCurrent(dir); 3. 4.QApplication::addLibraryPath("./plugins"); 5. QString dir = QApplication::applicationDirPath(); QApplication::addLibraryPath("./images"); a.setWindowIcon(QIcon("./images/myappico.ico")); 运行时加载ico文件,images目录要于可以执行文件同目录。

Qt学习(六) VS2013编译Qt5.3.1的静态库

Qt学习(六)VS2013编译Qt5.3.1的静态库 分类:Qt(windows)2014-07-11 08:36147人阅读评论(5)收藏举报今天用Qt写了个小程序,拷到另一台电脑发现无法运行,缺少文件。查了一下资料,发现是动态链接库的问题,因为原来一直用的微软系列的开发工具,这个问题不怎么突出,现在用Qt写程序,这个问题就很麻烦了。 针对这个问题网上找到的资料有两种解决方法,一是将程序需要的库文件放在一起,这个显然很麻烦,而且个人很不喜欢这种方式;另一种就是静态编译,所谓静态编译,就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。 下面介绍一下我自己编译静态库的过程,网上资料不少,但是介绍的都不全面,加上我这方面的基础也不怎么样,着实花了一番功夫。不多废话,开始介绍: 1、下载Qt5.3.1的源码:qt-everywhere-opensource-src-5.3.1.zip 打开官网下载页面,点击红线画着的文字“zip”下载源码:

保存图片,改后缀为7z,有下载网址2、安装python

保存图片,改后缀为7z,有下载网址 3、下载完成后解压,注意硬盘的可用空间: 我的解压目录是:E:\Qt 这是我编译完的文件夹大小(包括编译目录和install目录):

4、根据你的VS版本进入相应的文件夹,我是win32-msvc2013:

进入 E:\Qt\qt-everywhere-opensource-src-5.3.1\qtbase\mkspecs\win32-ms vc2013目录,有两个文件:

Qt静态库的下载和安装配置-修正

Qt静态库的下载和安装配置(QML/QtQuick修正) (2015.03.31 by Winland) 在Windows下使用Qt开发最后都是要发布程序的,Qt官方的库都是动态链接库,如果发布就需要一大堆的dll,而且还要记得复制plugins/platforms里面的插件,如果用到各种格式图片还要plugins/imageformats里面的插件,所以东西会越弄越多。针对Windows部署基于Qt的软件,Qt官方有专门文档: http://doc.qt.io/qt-5/windows-deployment.html 对于动态版本程序发布,官方Qt库里面也带了专门部署工具:QTDIR/bin/windeployqt ,这个本人也没用过,感兴趣的可以自己试试。 本文主要讲Qt静态库的下载、安装和配置使用。使用静态Qt编译的程序只需要一个exe文件,就可以走遍天下都不怕。可以自己根据Qt的源代码编译自己的静态版本Qt库,但这个过程非常耗费时间,而且如果有问题还要重新编译,比较麻烦。幸好网上有现成编译好的静态库,所以给新手和懒人提供了方便。 一、Qt Static Builds 下载 在网上寻找Qt静态库,就搜索Qt Static Builds ,目前找到两个地方有: https://www.doczj.com/doc/b112207590.html,/projects/static-qt/ https://https://www.doczj.com/doc/b112207590.html,/fostersoftware/QtStaticWindows 第一个是SourceForge上的项目,第二个是GitHub上的项目,这两个网站希望新手记牢了,以后要找好东西都可以去这两个网站。 GitHub上面的QtStaticWindows比较新,是5.3.2版本的,所以就选这个来做教程示范。 从GitHub网站下载东西,可以直接点击网页右边“Download ZIP” 但是这个下载可能比较卡比较慢,也可能挂掉。推荐的是安装git工具,新建QtStatic目录,在该目录里执行命令:

linux qt 动态链接库 静态链接库

linux qt 动态链接库静态链接库学习笔记 https://www.doczj.com/doc/b112207590.html,/codeworkman/blog/item/32b6ccce51bf3622f9dc6141.ht ml ====hello.h==== #ifndef HELLO_H #define HELLO_H extern "C" void hello(const char *name); #endif ====hello.c==== #include #include "hello.h" void hello(const char *name) { printf("Hello %s!\n", name); } ====main.c==== #include "hello.h" int main() { hello("everyone"); return 1; } [方案0] gcc hello.c main.c gcc hello.c main.c -o hello [方案1] gcc -c hello.c gcc -c main.c gcc hello.o main.o -o hello

[方案2静态库] ar rcs libmyhello.a hello.o gcc -o hello main.c -static -L. -lmyhello [方案3动态库] gcc -shared -fPIC -o libmyhello.so hello.o gcc -o hello main.c -L. -lmyhello mv libmyhello.so /usr/lib [部分选项说明] -shared //指定生成动态链接库,不用则相当于一个可执行文件 -fPIC //表示编译为位置独立的代码,否则达不到代码段共享的目的; -L. //表示要链接的库在当前目录中 -ltest: //编译器查找动态库时有隐含的命名规则即在给出的前面加上lib,后面加上.so来确定名称 LD_LIBRARY_PATH://这个变量指示动态链接器可以装载动态库的路径LIBRARY_PATH: //指定程序静态链接库文件搜索路径 [qt使用静态库] 在qt creator的pro文件添加 LIBS += $(OutDir)libmyhello.a LIBS += $(SOURCEDIR)/libmyhello.a 第1个是输出目录,第2个源程序目录,按自已习惯任选1个,之后copy文件libmyhello.a到你选择的目录中 在cpp文件#include "hello.h" [qt使用动态库] copy文件libmyhello.so到指定的链接库路径 /lib 或 /usr/local/lib 在qt creator的pro文件添加 LIBS += libmyhello.so 在cpp文件#include "hello.h" [extern "C"] 文件hello.h中有extern "C"关键字,表示在c++环境中调用c函数 qt本身是由c++类构建的,因此当使用.c文件时,此关键字必须加上

QTCreator调用动态库实例

在linux中,qt里面已经集成了最新的开发平台QT Creator,下面是我练习调用动态库(.so文件)的例程: 1、打开QT Creator,点击File-》New...菜单,选择C++ Libarary工程,点击下一步,输入工程名称(本例为zsz)即可,这没什么可说的。 工程文件(.pro)程序清单 # ------------------------------------------------- # Project created by QtCreator 2009-03-02T10:09:35 # ------------------------------------------------- TARGET = zsz TEMPLATE = lib CONFIG += plugin DEPENDPATH += . INCLUDEPATH += . SOURCES += mylib.cpp HEADERS += mylib.h mylib.h文件程序清单: #ifndef MYLIB_H #define MYLIB_H #ifdef Q_WS_WIN //表示在windows环境 #define MY_EXPORT __declspec(dllexport) #else #define MY_EXPORT #endif class mylib { public: int mymax(int i, int j); int add(int i, int j); }; extern "C" MY_EXPORT int diff(int i, int j); #endif // MYLIB_H mylib.cpp文件程序清单: #include "mylib.h" extern "C" MY_EXPORT int mylib::mymax(int i,int j) { if(i>=j) return i; else return j; } extern "C" MY_EXPORT int mylib::add(int i,int j) { return i+j; } extern "C" MY_EXPORT int diff(int i, int j) { if(i>=j) return i-j; else return j-i; } 对该工程进行编译,生成libzsz.so文件。

QT Creater的安装与使用

任务4:QT Creater的安装与 使用

主要内容 Qt Creator 简介 Qt Creator的安装 Qt Creator下Hello World应用的实现

一:Qt Creator 简介 1、Qt Creator是跨平台的Qt IDE 在功能方面,Qt Creator 包括项目生成向导、高级的C++ 代码编辑器、浏览文件及类的工具、集成了Qt Designer、Qt Assistant、Qt Linguist、图形化的GDB 调试前端,集成qmake 构建工具等。

一:Qt Creator 简介 语法标识和代码完成功能输入时进行静态代码检验以及提示样式上下文相关的帮助代码折叠括号匹配和括号选择模式高级编辑功能。 为Qt跨平台开发人员的需求而量身定制。 集成了特定于Qt 的功能,如信号与槽(Signals & Slots)图示调试器,对Qt 类结构可一目了然集成了Qt Designer 可视化布局和格式构建器只需单击一下就可生成和运行Qt 项目。

二:Qt Creator的安装 1、安装qt-creator-linux-x86-opensource-2.2.0 # chmod u+x qt-creator-linux-x86-opensource-2.2.0.bin # ./ qt-creator-linux-x86-opensource-2.2.0.bin 2、安装Qt_SDK_Lin32_offline_v1_1_1_en.run 直接双击Qt_SDK_Lin32_offline_v1_1_1_en.run运行即可

Qt静态库的下载和安装配置

Qt静态库的下载和安装配置 (2015.01.19 by Winland) 在Windows下使用Qt开发最后都是要发布程序的,Qt官方的库都是动态链接库,如果发布就需要一大堆的dll,而且还要记得复制plugins/platforms里面的插件,如果用到各种格式图片还要plugins/imageformats里面的插件,所以东西会越弄越多。针对Windows部署基于Qt的软件,Qt官方有专门文档: http://doc.qt.io/qt-5/windows-deployment.html 对于动态版本程序发布,官方Qt库里面也带了专门部署工具:QTDIR/bin/windeployqt ,这个本人也没用过,感兴趣的可以自己试试。 本文主要讲Qt静态库的下载、安装和配置使用。使用静态Qt编译的程序只需要一个exe文件,就可以走遍天下都不怕。可以自己根据Qt的源代码编译自己的静态版本Qt库,但这个过程非常耗费时间,而且如果有问题还要重新编译,比较麻烦。幸好网上有现成编译好的静态库,所以给新手和懒人提供了方便。 一、Qt Static Builds 下载 在网上寻找Qt静态库,就搜索Qt Static Builds ,目前找到两个地方有: https://www.doczj.com/doc/b112207590.html,/projects/static-qt/ https://https://www.doczj.com/doc/b112207590.html,/fostersoftware/QtStaticWindows 第一个是SourceForge上的项目,第二个是GitHub上的项目,这两个网站希望新手记牢了,以后要找好东西都可以去这两个网站。 GitHub上面的QtStaticWindows比较新,是5.3.2版本的,所以就选这个来做教程示范。 从GitHub网站下载东西,可以直接点击网页右边“Download ZIP” 但是这个下载可能比较卡比较慢,也可能挂掉。推荐的是安装git工具,新建QtStatic目录,在该目录里执行命令:

装了一遍Qt,个人总结的Qt安装教程

个人总结的Qt安装教程 1. Qt简介 Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP。 Qt是1991年奇趣科技开发的一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。Qt很容易扩展,并且允许真正地组件编程。基本上,Qt 同X Window 上的Motif,Openwin,GTK 等图形界面库和Windows 平台上的MFC,OWL,VCL,ATL 是同类型的东西。 ——摘自: https://www.doczj.com/doc/b112207590.html,/link?url=qTM13thOnHNc1TLEnlI30hW9NKZMFZ8_2IfhHBdJ0lBg4 5LPCRWbZ-1Q8K0N3zcWOsUp4zlDC9xaC90aD-GaBK Qt官网: https://www.doczj.com/doc/b112207590.html,/

Qt各种版本开发工具的配置方法

Windows下Qt各种版本开发工具的配置方法 Windows下开发工具的配置:首先安装Microsoft Visuall Studio 2005专业版,然后安装Microsoft ActiveSync公司4.5,再安装STANDARDSDK_500和Windows Mobile 5.0 Pocket PC SDK等软件。然后到Qt网站下载win-qt-everywhere-opensource-src-4.6.0.zip 软件,解压到某一指定目录,如:D:\Qt\win32binaries目录,然后从:“Visual Studio 2005 命令提示”入手进入命令行,执行自编批处理文件install.bat,内容为: configure -platform win32-msvc2005 nmake 1、Application命令行方式: 在Windows XP桌面上自编批处理命令文件:Qt Desktop Command Prompt.bat,内容为:%COMSPEC% /k "D:\Qt\win32binaries\win32binaries\bin\qtvars.bat vsvars" 这样就可通过命令行工具编译、运行Qt应用程序了。 如:qmake –project qmake –t vcapp qmake *.pro nmake 等就形成了exe程序了。 2、Application Visual Studio 2005集成环境方式: 在Windows XP桌面上自编批处理命令文件:Visual Studio with Qt Desktop.bat,内容为: D:\Qt\win32binaries\bin\qtvars.bat vsstart 这样就进入Visuall Studio 2005集成环境了。(注:编译后系统没有qtvars.bat文件,这是从qt-embedded-wince-eval-4.5.3-vs2005.exe安装后D:\Qt\4.5.3\win32binaries\bin 目录下取得的,而qt-embedded-wince-eval-4.5.3-vs2005.exe的使用是有时间限制的)3、Windows Mobile 5.0 Pocket PC: 将win-qt-everywhere-opensource-src-4.6.0.zip软件,解压到某一指定目录,如:D:\Qt\wm50binaries目录,然后从:“Visual Studio 2005 命令提示”入手进入命令行,执行自编批处理文件install.bat,内容为: PATH=D:\Qt\wm50binaries\bin;%PATH% configure -xplatform wincewm50pocket-msvc2005 set INCLUDE=D:\Program Files\Microsoft Visual Studio 8\VC\ce\include;D:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Include\Armv4i set LIB=D:\Program Files\Microsoft Visual Studio 8\VC\ce\lib\armv4i;D:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Lib\ARMV4I set PATH=D:\Program Files\Microsoft Visual Studio 8\VC\ce\bin\x86_arm;%PATH% nmake (注:可根据安装情况进行适当修改) 若有qt-embedded-wince-eval-4.5.3-vs2005.exe的checksdk.exe文件和setcepaths.bat 文件,那么自编批处理文件install.bat,也可以内容为: PATH=D:\Qt\wm50binaries\bin;%PATH% configure -xplatform wincewm50pocket-msvc2005 setcepaths wincewm50pocket-msvc2005

相关主题
文本预览
相关文档 最新文档