QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1200|回复: 3

ML正式版重编译Qt开发环境 qt-3.3.6 心得

[复制链接]
发表于 2006-2-14 11:32:32 | 显示全部楼层 |阅读模式
由于想为Qt加入mysql和pgsql支持,几经修改qt-3.3.6.spec发现其中有
%define plugins_sql -enable-sql -plugin-sql-mysql -plugin-sql-odbc -plugin-sql-psql
其中的我在./configure --help得到的反馈历史中没找到有 -enable-sql 参数
所以改成%define plugins_sql -plugin-sql-mysql -plugin-sql-psql
把%define buildSQL 0改成%define buildSQL 1

因为ML默认没有数据库,我编译安装了mysql和pgsql在/usr/local,所以
删除
%package ODBC
%package MySQL
%package PostgreSQL     几个对包检查定义
删除所有ODBC及odbc的定义

修改# build psql plugin和# build mysql plugin

# build psql plugin
pushd plugins/src/sqldrivers/psql
qmake -o Makefile "INCLUDEPATH+=/usr/local/pgsql/include /usr/local/pgsql/include/server /usr/local/pgsql/include/internal" "LIBS+=-L/usr/local/pgsql/lib -lpq" psql.pro
popd

# build mysql plugin
pushd plugins/src/sqldrivers/mysql
qmake -o Makefile "INCLUDEPATH+= /usr/local/mysql/include/mysql" "LIBS+=-L/usr/local/mysql/lib/mysql -lmysqlclient" mysql.pro
popd
%endif

以上修改后rpmbuild到打包阶段不能执行,发现sql的所有驱动并没有生成,所以删除odbc的所有内容,删除下面
%if %{buildSQL}
%files PostgreSQL
%defattr(-,root,root,-)
%{qtdir}/plugins/sqldrivers/libqsqlpsql*

%files MySQL
%defattr(-,root,root,-)
%{qtdir}/plugins/sqldrivers/libqsqlmysql*
%endif

如此后编译成功后安装rpm包,删除/etc/profile.d/java-profile.sh对PATH的定义,删除magic-misc-profile.sh中PATH的定义,修改/etc/profile

export POSTGRES_HOME=/usr/local/pgsql
PATH=$PATH:$QTDIR/bin:$JAVA_HOME/bin:$POSTGRES_HOME/bin
MANPATH=$QTDIR/man:$POSTGRES_HOME/man
LD_LIBRARY_PATH=$QTDIR/lib:$POSTGRES_HOME/lib:/usr/local/mysql/lib/mysql
LIBRARY_PATH=$QTDIR/lib
CPLUS_INCLUDE_PATH=$QTDIR/include
PGLIB=$POSTGRES_HOME/lib
PGDATA=$POSTGRES_HOME/data
export PATH MANPATH LD_LIBRARY_PATH LIBRARY_PATH CPLUS_INCLUDE_PATH PGLIB PGDATA
进入/usr/src/mBuild/BUILD
进入.../plugins/src/sqldrivers/mysql/  执行make;make install
进入.../plugins/src/sqldrivers/pgsql/  执行make;make install
进入.../plugins/src/sqldrivers/sqlite/  执行make;make install

发现qt.spec中%define styleplugins 0 ,但是后面生效了一个参数 -qt-style-motif
所以进入.../plugins/src/styles下的每个目录执行make;make install

总结:Qt在编译后并没有同时把插件一起编译和安装,必需在编译完成后,再进入相关插件源码目录对插件进行编译安装。
备份生成的rpm包,压缩备份所有生成插件,以便以后重装系统用。
说这么多,主要是提供大家一个Qt开发环境的打造经验。

希望有朋友提醒如何修改spec文档把插件和Qt主要部份集成打包为rpm包。
 楼主| 发表于 2006-2-14 12:14:30 | 显示全部楼层
自己顶下,对于Qt环境,我想下个版本应该注意一下profile的设置细节,因为GTK编译环境是不用设置的,而KDE桌面下的Qt环境反而要用户自己设置,这是不合理的。
回复

使用道具 举报

发表于 2006-2-14 12:49:36 | 显示全部楼层
profile设置是正确的,再仔细观察下/etc/profile及profile.d目录结构
回复

使用道具 举报

 楼主| 发表于 2006-2-14 13:21:14 | 显示全部楼层
可能我用词不准,至少少了点什么。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-25 10:10 , Processed in 0.039419 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表