导航:首页 > 源码编译 > qt编译静态库发布能查出程序吗

qt编译静态库发布能查出程序吗

发布时间:2022-12-08 16:03:04

㈠ 使用Qt静态库为什么运行出错

因为你链接的是qt的动态库,在没有qt动态库的系统上肯定是运行不了的。有两种方法,一种是静态编译,但会让运行文件变大。第二种就是把动态库和程序一起打包出去,路径设置

把 main.cpp 改成下面这样,再重新编译项目就可以了:
#include <QApplication>
#include <QQmlApplicationEngine>
//1. add headers
#include <QtPlugin>
#include <QtQml>
//2. add Q_IMPORT_PLUGIN
#if defined(QT_STATIC) && !defined(Q_OS_MAC) && !defined(QT_NAMESPACE)
#include <QQmlExtensionPlugin>
Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
Q_IMPORT_PLUGIN(QtQuick2Plugin)
Q_IMPORT_PLUGIN(QtQuickControlsPlugin)
Q_IMPORT_PLUGIN(QtQuickLayoutsPlugin)
Q_IMPORT_PLUGIN(QtQuick2WindowPlugin)
#endif
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QQmlApplicationEngine engine;
//3. registerTypes
#if defined(QT_STATIC) && !defined(Q_OS_MAC) && !defined(QT_NAMESPACE)
qobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuick2Plugin().instance())->registerTypes("QtQuick");
qobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuickControlsPlugin().instance())->registerTypes("QtQuick.Controls");
qobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuickControlsPlugin().instance())->registerTypes("QtQuick.Controls.Private");
qobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuickControlsPlugin().instance())->registerTypes("QtQuick.Controls.Styles");
qobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuickLayoutsPlugin().instance()) ->registerTypes("QtQuick.Layouts");
qobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuick2WindowPlugin().instance()) ->registerTypes("QtQuick.Window.2");
qobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuick2Plugin().instance()) ->initializeEngine( &engine, "QtQuick");
qobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuickControlsPlugin().instance())->initializeEngine( &engine, "QtQuick.Controls");
qobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuickLayoutsPlugin().instance()) ->initializeEngine( &engine, "QtQuick.Layouts");
qobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuickLayoutsPlugin().instance()) ->initializeEngine( &engine, "QtQuick.Layouts");
qobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuick2WindowPlugin().instance()) ->initializeEngine( &engine, "QtQuick.Window.2");
#endif
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
return app.exec();
}

㈡ QT程序怎么调用vc,编译的静态库,动态库等

mingw编译出来的静态库后缀名为.a,编译出来的动态库的导入库后缀名为.dll.a,而在windows下后缀名为.lib的库可能是静态库也可能是动态库的导入库。 mingw编译出来的动态库的导入库可以直接在vc中直接使用

㈢ Qt下如何编译库

akefile文件。一般是qt里自带的qmake工具。

首先先写好cpp和头文件,在当前目录下依次执行qmake -project,qmake,make即可编译。
另外,团IDC网上有许多产品团购,便宜有口碑

linux下面qt静态编译

我试过很多次,都失败了,我直接改makefile都不行的。

一般来说都可以通过-static编译命令来强制使用静态库的,但Qt我试过不行,或许我做的还不够彻底。

㈤ Qt creator 如何设置静态编译

Qt默认
编译

态编译

编写
程序要发布

态库文件
繁琐
需要静态编译
程序
Qt要实现静态编译必须库文件
静态编译

命令编译静态库:1.
C:\Qt\2010.05\qt\mkspecs\win32-g++文件
QMAKE_LFLAGS
=
-enable-stdcall-fixup
-Wl,-enable-auto-import
-Wl,-enable-runtime-pseudo-reloc

QMAKE_LFLAGS
=
-static
-enable-stdcall-fixup
-Wl,-enable-auto-import
-Wl,-enable-runtime-pseudo-reloc2.
始菜单

Qt
Command
Prompt并运行
输入命令:
configure
-static
-debug-and-release
-no-exceptions
-L
"C:\Qt\2010.05\qt\include"
-L
"C:\Qt\2010.05\qt\lib"-L指定
路径
防止用
vc
文件选择
源:O;选择license:y;3.
条命令运行

再输入命令:
mingw32-make
sub-src等1
~3

运行完

ok

㈥ qt静态库编译,动态编译和静态编译可共存吗

通常不需要在系统变量中加入Qt库的位置的。Qt Creator可以自动扫描到系统中存在的Qt库版本,如果扫描不到,可以通过Creator的 Tool->Options->Qt4中添加静态库的路径。而QDevelop虽然没有那么智能,但是可以手动指定INCLUDE和LIB的位置。或许,这根本就不是一个问题。如果怀念动态库,或者在产品发布之前并不想体验静态编译那种蜗牛爬一般的速度,可以在pro文件中指定CONFIG += shared,而且,要记得在Project中选择相应的版本。

㈦ Qt如何实现静态编译与动态编译共存

通常不需要在系统变量中加入Qt库的位置的。Qt Creator可以自动扫描到系统中存在的Qt库版本,如果扫描不到,可以通过Creator的 Tool->Options->Qt4中添加静态库的路径。而QDevelop虽然没有那么智能,但是可以手动指定INCLUDE和LIB的位置。或许,这根本就不是一个问题。如果怀念动态库,或者在产品发布之前并不想体验静态编译那种蜗牛爬一般的速度,可以在pro文件中指定CONFIG += shared,而且,要记得在Project中选择相应的版本。

㈧ 求助,论坛上有谁成功编译过QT 的静态库的,过来看看吧

Qt采用编译的方式安装的时候,配置中默认的编译方式是动态编译的,但是有时候你编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译你的程序,Qt要实现静态编译必须库文件也是静态编译的,所以在此介绍一下qt如何来进行静态编译第一步:下载源码包Qt/X11版本:qt-x11-opensource-src-4.5.2.tar.gz第二步:解压缩tarzxvfqt-x11-opensource-src-4.5.2.tar.gz第三步:进入到刚才解压缩后的文件夹下并进行配置,如下./configure-release-platformwin32-msvc2008-static-nomakeexamples-nomakedemos-no-qt3support-no-scrip ...

㈨ Qt Creater怎么编译出静态连接的程序

Qt默认的编译方式是动态编译的,但是有时候编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译程序,Qt要实现静态编译必须库文件也是静态编译的,可以用这个命令编译静态库:
1.将C:\Qt\2010.05\qt\mkspecs\win32-g++\qmake.conf文件中的QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
改为
QMAKE_LFLAGS = -static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
2.在开始菜单里找到Qt Command Prompt并运行,输入命令: configure -static -debug-and-release -no-exceptions -L "C:\Qt\2010.05\qt\include" -L "C:\Qt\2010.05\qt\lib"
-L指定一下路径,防止用到vc的头文件
选择开源:O;选择license:y;
3.上一条命令运行成功后再输入命令: mingw32-make sub-src
等1 ~3 小时可能就运行完了 完成后就可以了。

㈩ 如何静态编译发布Qt应用程序

如果你说的是Qt程序的话,静态编译就得自行从源码开始编译Qt静态库,官网预编译的版本是不包含静态库的。这个很复杂,请参考qt-everywhere-opensource 中提供的编译帮助。注意如果使用miongw的话,gcc版本最好不要是4.6.2。这个版本比较特殊,但是它是mingw官方版的最新打包版本。
如果你说的是非qt库依赖的话,有两种mingw和vs,前者有部分发行版默认去除了dll依赖,直接连接的静态库,后者非常不推荐使用静态库,毕竟它加载的是系统常用dll,基本上所有系统都是推荐安装的运行时环境,用静态库吃力不讨好。

阅读全文

与qt编译静态库发布能查出程序吗相关的资料

热点内容
哪里有无损音乐app下载 浏览:221
单片机如何使用proteus 浏览:991
java常用的服务器 浏览:281
集结APP在哪里下载 浏览:800
欧洲cf玩什么服务器 浏览:529
如何连接另一台电脑上的共享文件夹 浏览:681
如何让桌面文件夹搬家到e盘 浏览:73
java自动格式化 浏览:619
ipad怎么查看文件夹大小 浏览:583
手工粘土解压球 浏览:552
在线视频教育源码 浏览:41
快四十学什么编程 浏览:754
gnumakelinux 浏览:537
视易峰云服务器怎么改系统 浏览:535
javamap取值 浏览:768
mac和win磁盘加密软件 浏览:474
苹果为什么会连接不到服务器 浏览:726
pdf格式文件如何保存 浏览:303
小霸王服务器tx什么意思 浏览:75
解释dns命令 浏览:584