QT编译.configure参数的详细解释

1. 编译PC上的Qt。这里的configure参数不是很重要,用默认的参数即可,当然为了调试方便加入-qvfb参数。
gunzip qt-x11-opensource-src-4.3.2.tar.gz
tar xvf qt-x11-opensource-src-4.3.2.tar
./configure -qvfb
make
make install

2. 交叉编译嵌入式Qtopia-core。这里的configure参数对于最终库文件的大小和支持的功能至关重要,一定要确保加入了足够的功能,同时不需要的功能一个也不要!
gunzip qtopia-core-opensource-src-4.3.2.tar.gz
tar xvf qtopia-core-opensource-src-4.3.2.tar

cd /tmp/qtopia-core-opensource-src-4.3.2
在qtopia-core-opensource-src-4.2.2/src/gui/embedded/qmouselinuxtp_qws.h加入
#define QT_QWS_IPAQ
#define QT_QWS_IPAQ_RAW
以上两个定义是为了支持触摸屏
在下面的configure参数中,-prefix指定了最后install的目录,
./configure -prefix /home/ace/Qtopiacore-4.3.2 -no-largefile -xplatform qws/linux-arm-g++ -no-libtiff -no-gif -no-libmng -no-openssl -embedded arm -big-endian -no-freetype -qt-gfx-linuxfb -no-qt3support
make
make install

将编译好Qtopiacore-4.3.2下lib库放到根文件系统的Qtopiacore下 (注意根文件系统中的目录要和-prefix /home/ace/Qtopiacore-4.3.2一样否则下到arm板上运行程序的时候会报错说找不到字体)。
如果报错说找不到libstc++.so.6文件,可以将usr/local/arm/3.4.1/arm-linux/lib/libstc++.so.6复制到/home/ace/Qtopiacore-4.3.2/lib下(或者软链接)。
为了实现触摸屏的校准将/home/ace/Qtopiacore-4.3.2/examples/qtopiacore/mousecalibration/mousecalibration拷贝到根文件系统中,在文件系统的.bashrc文件中加入环境变量,并且export QWS_MOUSE_PROTO="LinuxTP:/dev/h3600_tsraw"。


3. 制作根文件系统及进行触摸屏校准。
将根文件系统下到arm板子上去,启动板子运行./mousecalibration -qws 进行触摸屏的校准。
校准完后 cat /etc/pointercal,将显示的数据记录下来, 然后新建一个空白文档将其命名为pointercal ,然后将记录的数据放到pointercal文档中。
rm -f /etc/pointercal
sudo cp -f 新建的pointercal /etc
sudo chown 500:244 /etc/pointercal
制作根文件系统,烧到arm板子。

4. Done!

终于翻译完了,我承认翻译的很差,甚至很多都有误解,但是没办法我只是新手+对QT的兴趣,有错一定要指出来,我马上编辑下,目的只有一个,方便后来的学习者,我的目标是将QT发扬光大。很喜欢QT!在此感谢老大[url=space.php?uid=3]shiroki[/url]和群里的热心人帮助,我才能解决各种缤纷多彩的编译错误


可以随便的转载,只要按照规矩走带上咱论坛的链接就好。

==================================
====全文是按照./configure -help来翻译的========
==================================
Usage: configure [-h] [-prefix

] [-prefix-install] [-bindir ] [-libdir ]
[-docdir ] [-headerdi

r

] [-plugindir ] [-datadir ]
[-translationdir ] [-sysconfdir ] [-examplesdir ]
[-demosdir ] [-buildkey ]
这些是基本参数
[-release] [-debug][-debug-and-release] [-developer-build]
[-shared] [-static] [-no-fast] [-fast] [-no-largefile]
[-largefile] [-no-exceptions] [-exceptions] [-no-accessibility]
[-accessibility] [-no-stl] [-stl] [-no-sql-] [-sql-]
[-plugin-sql-] [-system-sqlite] [-no-qt3support] [-qt3support]
[-platform] [-D ] [-I ] [-L ] [-help]
这些是对QT所支持模块等设置的参数
[-qt-zlib] [-system-zlib] [-no-gif] [-qt-gif] [-no-libtiff] [-qt-libtiff] [-system-libtiff]
[-no-libpng] [-qt-libpng] [-system-libpng] [-no-libmng] [-qt-libmng]
[-system-libmng] [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg] [-make ]
[-no-make ] [-R ] [-l ] [-no-rpath] [-rpath] [-continue]
[-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv]
[-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked]
[-no-separate-debug-info]
这些是第三方库的支持参数
[-no-mmx] [-no-3dnow] [-no-sse] [-no-sse2]
[-qtnamespace ] [-qtlibinfix ] [-separate-debug-info]
[-armfpa][-no-optimized-qmake] [-optimized-qmake] [-no-xmlpatterns]
[-xmlpatterns][-no-phonon] [-phonon] [-no-phonon-backend]
[-phonon-backend][-no-openssl] [-openssl] [-openssl-linked]
[-no-gtkstyle] [-gtkstyle] [-no-svg] [-svg] [-no-webkit] [-webkit]
[-no-scripttools] [-scripttools]

专属嵌入式QTE编译的模块选择参数



安装选项:

以下选项都是可选,通过他们指定安装目录,不指定则用默认目录。选项前标记*的则为系统默认,+则为添加才有效那种
-prefix ......... 指定安装目录默认在 /usr/local/Trolltech/QtEmbedded-4.X.X
-hostprefix [dir] ..... 指定可扩展的工具库安装路径,默认当前目录
* -prefix-install ........ 指定QT的本地安装. 至
/usr/local/Trolltech/QtEmbedded-4.X.X, 此选项优先于-PREFIX.

以下选项用来指定分开安装不同部分,比如希望将可执行的放在/usr/bin 将库文件放在/lib下等等:

-bindir ......... 指定可执行文件路径 (默认 PREFIX/bin下)
-libdir .......... 指定库文件路径 (默认 PREFIX/lib)
-docdir ........ 指定文档路径 (默认 PREFIX/doc)
-headerdir .... 指定头文件路径 (默认 PREFIX/include)
-plugindir ...... 指定插件路径 (默认 PREFIX/plugins)
-datadir ........ 指定QT要使用到的一些数据文件所在路径 (默认 PREFIX)
-translationdir . 指定QT程序的翻译文件路径 (默认 PREFIX/translations)
-sysconfdir ..... 指定QT的设置文件路径 (默认 PREFIX/etc/settings)
-examplesdir .... 指定实例文件, (默认 PREFIX/examples)
-demosdir ....... 指定demos的安装路径 (默

认 PREFIX/demos)

可以用这些选项去匹配自己所想要的插件

- buildkey ...... 通过指定的key生成QT库和插件。


配置选项:

默认的选项(*),可选添加选项(+)


* -release ........... 加上此选项编译程序QT不会做出优化,往往在开发过程使用此选项,是默认选项
-debug ............. 此选项在编译过程QT会对程序进行优化,在发布软件的时候应该用此选项
-debug-and-release . 编译两个版本

-developer-build.... 编译Qt的开发商和连接选项(包括自动测试出口的Qt)

-opensource......... 以开源版本发布程序
-commercial......... 以商业版本发布程序

* -shared ............ 创建和使用共享Qt库。
-static ............ 创建和使用静态的Qt库。

* -no-fast ........... 使用通常的Makefile来编译,是默认选项
-fast .............. 快速编译,除了封装必要的库,部分步骤省略或者用快速的方法处理
-no-largefile ...... 禁用大文件支持。
+ -largefile ......... 支持访问大于4GB的文件
* -no-exceptions ..... 禁用编译器本身对异常的处理
-exceptions ........ 启用编译器本身对异常的处理
-no-accessibility ..
* -accessibility ..... 禁用/启用无障碍支持
-no-stl ............
* -stl ............... 禁用/启用STL支持
-no-sql- ... 禁用SQL
-qt-sql- ... 根据需求启用SQL插件(默认全部关闭)
-plugin-sql- 禁用/启用/启用插件 对SQL的支持

-system-sqlite ..... 启用支持sqlite也可用-qt-sqlite

-no-qt3support .....
* -qt3support ........ 禁用/启用qt3支持模块

-no-xmlpatterns ....
+ -xmlpatterns ....... 禁用/启用xmlpatterns模块

-no-phonon .........
+ -phonon ............ 禁用/启用Phonon模块(可以理解为声音控制模块)


-no-phonon-backend..
+ -phonon-backend..... 禁用/启用phonon-backend模块
-no-svg ............
+ -svg ............... 禁用/启用svg模块

-no-webkit .........
+ -webkit ............ 禁用/启用webkit模块(访问网络模块)
-no-scripttools ....
+ -scripttools ....... 禁用/启用scripttools模块

-platform target ... x86平台指定模块 (qws/linux-x86-g++).


-no-mmx ............ 我不知道这四个是什么,貌似是几个指令系统?
-no-3dnow ..........
-no-sse ............
-no-sse2 ...........

-qtnamespace 指定所有库代码路径.
-qtlibinfix 重命名所有.so库文件到指定路径

-D ........ 添加一个预处理器
-I ........ 添加一个明确的头文件路径
-L ........ 添加一个明确的库文件路径

-help, -h .......... 显示帮助信息
少说废话,多做实事~

第三方库选项:
(以下是第三方库,往往编译过程中需要依赖的都要加上,也没什么好说的,缺什么就加什么)

-qt-zlib ...........
+ -system-zlib .......

zlib依赖包 详询 https://www.360docs.net/doc/d08937472.html,/zlib

-no-gif ............
* -qt-gif ............ gif图片支持包
See also src/plugins/imageformats/gif/qgifhandler.h

-no-libtiff ........
-qt-libtiff ........ tiff支持插件
+ -system-libtiff .... 默认是-system调用系统的,出错的话可以尝试用-qt,qt的在编译过程不容易出错
详询 https://www.360docs.net/doc/d08937472.html,

-no-libpng .........
-qt-libpng ......... png图片支持插件
+ -system-libpng .....
详询 https://www.360docs.net/doc/d08937472.html,/pub/png

-no-libmng .........
-qt-libmng ......... mng支持插件
+ -system-libmng .....
详询 https://www.360docs.net/doc/d08937472.html,

-no-libjpeg ........
-qt-libjpeg ........ jpeg图片支持插件
+ -system-libjpeg ....
详询 https://www.360docs.net/doc/d08937472.html,

-no-openssl ........
+ -openssl ........... openssl支持插件
-openssl-linked ....

-ptmalloc .......... 系统内存分配器
少说废话,多做实事~


其他选项:
(扩展选项,模块的选择等,使编译更加人性化)
-make ....... 选择是否编译某些无关紧要的子模块
-nomake ..... (例如不想编译系统自导的demos则可使用-nomake demos)
-R ........ 添加一个动态库
-l ........ 添加一个静态库
-no-rpath ..........
+ -rpath ............. 是否将生成的库安装在软件的安装目录,默认是在安装目录,否则自己指定路径

-continue .......... 忽略错误一路前奔的编译,因为一般情况是按照模块逐个编译的,
碰到错误就停止。加上此参数是全部编译最后处理
-verbose, -v ....... 显示每个步骤的详细信息
-silent ............ 安静的编译省略信息回显

* -no-optimized-qmake ...
-optimized-qmake ...... 禁用/开启qmake的优化作用

-no-nis ............
* -nis ............... 禁用/开启NIS的支持

-no-cups ...........
* -cups .............. 禁用/开启对CUPS的支持
需要 cups/cups.h and libcups.so.2.

-no-iconv ..........
* -iconv ............. 禁用/开启对iconv的支持.

-no-pch ............
* -pch ............... 禁用/开启是否使用预处理器头文件

-no-dbus ...........
+ -dbus .............. 禁用/开启对QTdbus模块的编译
-dbus-linked .......

-reduce-relocations ..... 减少因为链接优化而导致的而外的库文件重置

-no-separate-debug-info . 不将调试信息放在一个文件内
* -separate-debug-info .... 将调试信息放在一个文件内

少说废话,多做实事~

以下参数仅限于嵌入式 QTE编译使用:

-xplatform target ... 交叉编译过程指定目标平台
-no-feature- 不编译.
-feature- .. 编译. 可选feature在src/corelib/global/qfeatures.txt文件内可查寻

-embedded .... 指定嵌入式平台的类型例

如:arm mips x86 generic

-armfpa .............
-no-armfpa .......... 禁用/启用armfpa浮点格式支持

-little-endian ...... 指定字节顺序为小字节序、低字节序
-big-endian ......... 指定字节顺序为大字节序、高字节序

-host-little-endian . 指定主机平台字节顺序为小字节序、低字节序
-host-big-endian .... 指定主机平台字节顺序为大字节序、高字节序
注:只需指定目标平台的字节顺序,否则将会选用主机的字节顺序
arm的编译过程这项得加


-no-freetype ........
-qt-freetype ........ 禁用/启用对freetype 模块的支持
* -system-freetype ....
详询 https://www.360docs.net/doc/d08937472.html,/

-qconfig local ...... 在不指定此配置的情况下系统使用
src/corelib/global/qconfig-local.h

-depths ...... 支持显示设备的位深度。有1, 4, 8, 12, 15, 16, 18, 24, 32 and 'all'.

-qt-decoration-