linuxqt静态编译
你说的是编译静态库吧,在pro文件如下设置即可编译静态库: TEMPLATE = libCONFIG += staticlib
‘贰’ ubuntu下静态编译QT及QT写好的程序
静态编译必须重新编译整个QT大概需要2个多小时的时间
‘叁’ qt-opensource-linux-x64-5.8.0.run可以静态编译吗
你机器中的库文件和qt需要使用的库文件的版本不匹配 重新下载个/lib/libc.so.6去 ,必须包含GLIBC_2.9
‘肆’ Qt 如何编译成可执行程序,像VC的静态编译,可以在脱离QT的环境中运行
qt 开源版本 不允许静态编译
可以将DLL打包,就能再其他的机器上运行了.
‘伍’ 请哪位来解释一下Qt静态编译和动态编译的区别
静态编译与动态编译的区别:
1、动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令。
所以其优点一方面是缩小了执行文件本身的体积,另一方面是加快了编译速度,节省了系统资源。
缺点一是哪怕是很简单的程序,只用到了链接库中的一两条命令,也需要附带一个相对庞大的链接库;二是如果其他计算机上没有安装对应的运行库,则用动态编译的可执行文件就不能运行。
‘陆’ QT4 Linux GUI应用程序如何把所需要的QT库一起打包,使其能在没有装QT4的Linux平台上运行
写在依赖包列表里,有管理程序会自动下载安装的。不过要写明版本和候选源的名字。加上官方的运行库依赖……基本上所有的linux发行版都有qt4运行库的源。
至于怎么写,您网络一下吧……rpm或者dpkg都有控制命令和测试命令,反正安装的时候测试没有启动下载或者一起打包的库安装就好了。
用程序管理器是最容易的,会自动检查依赖并下载。比如yum和apt这种。
反正我写qt的时候在linux下从来不担心这问题,基本也没有问题
倒是windows需要自己打包带着走……毕竟windows下用qt的程序很少,装qt运行库的更少了
‘柒’ 使用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交叉编译时怎么添加静态库,急!!!
INCPATH = -I../EmbedSky/qt-4.5/__install/arm/mkspecs/default -I. -I../EmbedSky/qt-4.5/__install/arm/include/QtCore -I../EmbedSky/qt-4.5/__install/arm/include/QtNetwork -I../EmbedSky/qt-4.5/__install/arm/include/QtGui -I../EmbedSky/qt-4.5/__install/arm/include -I. -I. -I.
在这里增加你编译的静态库。。。可以试试,我也是新手
‘玖’ 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
...
by
fengyetang
2010-07-04
回复
(0)