1.Linux上静态编译Qt应用实现方案linux静态编译qt
2.wps 有没有哪个版本用glibc-2.15 就可以安装的源码?CenOS 6安装时老是出先require glibc-2.15,
3.qt-everywhere-opensource-src-4.8.5è¿ä¸ªå
å«qt createå
Linux上静态编译Qt应用实现方案linux静态编译qt
随着越来越新兴Qt建站应用软件的出现,用户可以更加方便地搭建跨平台和可移植性更高的源码程序。由于Linux操作系统大量使用静态编译,源码许多用户在使用Qt建站时希望将其应用进行静态编译,源码以节省后续的源码源码怎样对接后台移植成本。
静态编译Qt应用需要满足以下条件:
(1)必须安装Qt源码。源码在线获取web源码可以从官网下载Qt安装包,源码也可以从git仓库更新,源码一般来说需要安装qt-every-where-src-VERSION.tar.gz这类的源码源码包。
(2)使用QT_STATIC_BUILD编译参数,源码可以指定安装路径以部署编译好的源码二进制文件。
(3)使用Linux平台特定的源码软件包管理器,比如Debian和Ubuntu,源码nginx平滑升级源码下载并安装相关的源码编译库:
-debreate Build-Deps,用以加载基本的源码编译包
-qtwebkit-src,编译应用程序所需要的前端引擎组件
-qtbase-src,编译应用程序所需要的缓存雪崩实例源码包含Qt library、GUI等组件
根据以上步骤,可以利用Linux命令行工具编译Qt应用,例如:
$ ./configure –prefix=/path/Qt,如果使用Qt5,bitmap c源码类型可以使用-static-developer参数
$ make,如果需要加速编译,可以加上-j参数
$ make install
最后,可以对构建的二进制文件运行ldd命令、ldconfig命令以及QMAKE等捆绑工具,以构建具有完整功能的应用程序二进制包。
以上就是Linux上静态编译Qt应用实现方案。Qt模块可以快速安全地完成构建,使用是静态编译可以实现应用跨平台和可移植性更高,给用户带来更优的体验。
wps 有没有哪个版本用glibc-2. 就可以安装的?CenOS 6安装时老是出先require glibc-2.,
1.试图运行程序,提示"libc.so.6: version `GLIBC_2.' not found",原因是系统的glibc版本太低,软件编译时使用了较高版本的glibc引起的:
[ghui@StuOS bin]$ pwd
/var/VMdisks/cross/mingw/bin
[ghui@StuOS bin]$ ls
lrelease QtCore4.dll QtNetwork4.dll QtSql4.dll QtXml4.dll
moc QtDeclarative4.dll QtOpenGL4.dll QtSvg4.dll rcc
phonon4.dll QtGui4.dll QtScript4.dll QtTest4.dll uic
qmake QtMultimedia4.dll QtScriptTools4.dll QtWebKit4.dll
[ghui@StuOS bin]$ ./qmake
./qmake: /lib/libc.so.6: version `GLIBC_2.' not found (required by ./qmake)
2.查看系统glibc支持的版本:
[ghui@StuOS bin]$ strings /lib/libc.so.6 |grep GLIBC_
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_PRIVATE
[ghui@StuOS bin]$ rpm -qa |grep glibc
glibc-static-2.-1..el6_3.6.x_
glibc-headers-2.-1..el6_3.6.x_
glibc-common-2.-1..el6_3.6.x_
glibc-devel-2.-1..el6_3.6.x_
glibc-static-2.-1..el6_3.6.i
glibc-devel-2.-1..el6_3.6.i
glibc-2.-1..el6_3.6.i
glibc-2.-1..el6_3.6.x_
3.可以看到最高只支持2.版本,所以考虑编译解决这个问题:
a. 到 manual string
ChangeLog. elf math sunrpc
ChangeLog. extra-lib.mk misc sysdeps
ChangeLog. extra-modules.mk NAMESPACE sysvipc
ChangeLog. FAQ NEWS termios
ChangeLog. FAQ.in nis test-skeleton.c
ChangeLog. gmon NOTES time
ChangeLog. gnulib nptl timezone
ChangeLog.2 grp nptl_db tls.make.c
ChangeLog.3 gshadow nscd version.h
ChangeLog.4 hesiod nss Versions.def
ChangeLog.5 hurd o-iterator.mk wcsmbs
ChangeLog.6 iconv po wctype
ChangeLog.7 iconvdata posix WUR-REPORT
ChangeLog.8 include PROJECTS
ChangeLog.9 inet pwd
conf INSTALL README
c.在glibc源码目录建立构建目录,并cd进入构建目录
[ghui@StuOS glibc-2.]$ mkdir build
[ghui@StuOS glibc-2.]$ cd build
d.运行configure配置,make && sudo make install
[ghui@StuOS build]$ ../configure --prefix=/opt/glibc-2.
[ghui@StuOS build]$ make -j4
[ghui@StuOS build]$ sudo make install
[sudo] password for ghui:
4.临时修改环境变量
[ghui@StuOS bin]$ export LD_LIBRARY_PATH=/opt/glibc-2./lib:$LD_LIBRARY_PATH
[ghui@StuOS glibc-2.]$ cd /var/VMdisks/cross/mingw/bin/
[ghui@StuOS bin]$ ./qmake
Usage: ./qmake [mode] [options] [files]
QMake has two modes, one mode for generating project files based on
some heuristics, and the other for generating makefiles. Normally you
shouldn't need to specify a mode, as makefile generation is the default
mode for qmake, but you may use this to test qmake on an existing project
qt-everywhere-opensource-src-4.8.5è¿ä¸ªå å«qt createå
ä¸é¢æ¯ç¼è¯é项,èªå·±å¯ä»¥ä¿®ä¿®æ¹æ¹./configure-opensource-embeddedarm-xplatformqws/linux-arm-gnueabi-g++-no-webkit-qt-libtiff-qt-libmng-qt-libjpeg-qt-libpng-no-qt3support-nomakedemos-nomakedocs-nomakeexamples-little-endian-host-little-endian-no-xcursor-no-mouse-linuxtp-qt-mouse-tslib-I/usr/local/tslib/include-L/usr/local/tslib/lib-fast-lrt-confirm-licensePS:å¨è§£åå çmkspecs/linux-arm-gnueabi-g++ç®å½ä¸éè¦é ç½®ä¸ä¸ä½ çlinux-arm-gnueabi-g++è·¯å¾,æ好æ¯è®¾ç½®æç»å¯¹è·¯å¾,å¦åå¯è½ä½ é ç½®ç交åç¼è¯å¨æ²¡ææ·»å å°ç¯å¢åééé¢ä¸å¥½~(å¦æé ç½®äºç¯å¢åéçè¯,é£å°±æ²¡å¿ è¦è®¾ç½®äº)æçç»ä½ åèä¸ä¸,å°±æ¯åé äº~##qmakeconfigurationforbuildingwitharm-linux-gnueabi-g++#MAKEFILE_GENERATOR=UNIXTARGET_PLATFORM=unixTEMPLATE=appCONFIG+=qtwarn_onreleaseincrementallink_prlgdb_dwarf_indexQT+=coreguiQMAKE_INCREMENTAL_STYLE=sublibinclude(../common/linux.conf)include(../common/gcc-base-unix.conf)include(../common/g++-unix.conf)#modificationstog++.confQMAKE_CC=arm-linux-gnueabi-gccQMAKE_CXX=arm-linux-gnueabi-g++QMAKE_LINK=arm-linux-gnueabi-g++QMAKE_LINK_SHLIB=arm-linux-gnueabi-g++#modificationstolinux.confQMAKE_AR=arm-linux-gnueabi-arcqsQMAKE_OBJCOPY=arm-linux-gnueabi-objcopyQMAKE_STRIP=arm-linux-gnueabi-stripload(qt_config)æ¥ä¸æ¥æ¯QTCREATEé ç½®å·¥å ·-->é项--->æ建åè¿è¡1.ç¼è¯å¨:ç¹å»æ·»å :"å称"éæ"ç¼è¯å¨è·¯å¾"**/arm-none-linux-gnueabi-g++æ¾å°ä½ çç¼è¯å¨,æè¿éæ¯ç¨ARMçå ¶ä»ä¸å¡«ä¹è¡.2.QtVersions:ç¹å»æ·»å :æ¾å°éè¿æºç ç¼è¯å¥½çqmakeæ件.ä¾å¦:/usr/local/Qt-4.8.6/bin/qmake3.æ建å¥ä»¶:ç¹å»æ·»å :"å称"éæ,éç¹æ¯"ç¼è¯å¨"è·"QTçæ¬",åå«éæ©ååæ·»å ç两项.è°è¯å¨:å¦ææ¯æ¡é¢ç¯å¢é£å°±éæ¡é¢ç,å¦ææ¯å¨åµå ¥å¼ä¸ç,é£ä¸è¦ä¹å¯ä»¥..