当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : qt creator 中加入其他qt版本的方法
帖子发表于 : 2011-02-17 21:08 

注册: 2008-07-12 17:18
帖子: 159
送出感谢: 0 次
接收感谢: 1
为了使用Qt Creator这个图形化的集成开发环境我们甚至可以把交叉编译环境也加入到里面。以我的motorola的EZX(使用qt2.3.8)开发环境为例,来讲讲操作步骤。

在点击 工具-选项,弹出的对话框中选择Qt版本,在手动设置中增加一项,版本名称 为 EZX,qmake 路径 为 /usr/bin/qmake-qt4。点击确定。注意只能选择qt4的qmake,否则版本无法识别,不能运行qmake。这一点不知有没有其他方法。这里一个问题是选好qmake后默认的mkspec为linux-g++(桌面),而我们希望是交叉编译的mkspec,不知如何修改。下面的方法是每次都手动修改。
附件:
文件注释: add-qt-version
add-qt-version.png
add-qt-version.png [ 112.44 KiB | 被浏览 1531 次 ]


以上步骤完成后会在 左边那栏的 项目-Qt 版本里多出一项EZX 。接下来,为了在编译是能正确调用EZX的开发环境,我们还要在/usr/share/qt4/mkspecs中新建一个文件夹 linux-g++-montavista, 存放EZX编译环境的设置。参考现有的文件比如linux-g++中的qmake.conf,我的qmake.conf为
代码:
#
#
# qmake configuration for linux-g++-montavista
#

MAKEFILE_GENERATOR   = UNIX
TARGET_PLATFORM      = unix #Qt4
TEMPLATE      = app
CONFIG         += qt warn_off release
#incremental link_prl
QMAKE_INCREMENTAL_STYLE = sublib

#
# qmake configuration for common gcc
#

QMAKE_CC      = $(CCACHE) $(DISTCC) iwmmxt_le-gcc
QMAKE_CFLAGS      = -pipe
QMAKE_CFLAGS_DEPS   = -M
QMAKE_CFLAGS_WARN_ON   = -Wall -W
QMAKE_CFLAGS_WARN_OFF   = -w
QMAKE_CFLAGS_RELEASE   = -O2 -mcpu=iwmmxt -mtune=iwmmxt
QMAKE_CFLAGS_DEBUG   = -g
QMAKE_CFLAGS_SHLIB   = -fPIC
QMAKE_CFLAGS_STATIC_LIB   += -fPIC #Qt4
QMAKE_CFLAGS_YACC   = -Wno-unused -Wno-parentheses
QMAKE_CFLAGS_THREAD   = -D_REENTRANT  #Qt4 +=

#Qt4
#QMAKE_CFLAGS_HIDESYMS   += -fvisibility=hidden
#QMAKE_CFLAGS_PRECOMPILE += -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
#QMAKE_CFLAGS_USE_PRECOMPILE += -include ${QMAKE_PCH_OUTPUT_BASE}

QMAKE_CXX      = $(CCACHE) $(DISTCC) iwmmxt_le-g++
QMAKE_CXXFLAGS      = $$QMAKE_CFLAGS  -DQWS -fno-exceptions -fno-rtti
QMAKE_CXXFLAGS_DEPS   = $$QMAKE_CFLAGS_DEPS
QMAKE_CXXFLAGS_WARN_ON   = $$QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_WARN_OFF   = $$QMAKE_CFLAGS_WARN_OFF
QMAKE_CXXFLAGS_RELEASE   = $$QMAKE_CFLAGS_RELEASE
QMAKE_CXXFLAGS_DEBUG   = $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_SHLIB   = $$QMAKE_CFLAGS_SHLIB
QMAKE_CXXFLAGS_YACC   = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_THREAD   = $$QMAKE_CFLAGS_THREAD  #Qt4 +=

QMAKE_INCDIR      = $(MONTAVISTA)/target/usr/include $(MONTAVISTA)/target/usr/local/include
QMAKE_LIBDIR      = $(MONTAVISTA)/target/usr/lib $(MONTAVISTA)/target/usr/lib $(MONTAVISTA)/target/usr/local/lib
QMAKE_INCDIR_X11   = /usr/X11R6/include
QMAKE_LIBDIR_X11   = /usr/X11R6/lib
QMAKE_INCDIR_QT      = $(QTDIR)/include $(EZXDIR)/include $(QT_EXTDIR)/include
QMAKE_LIBDIR_QT      = $(QTDIR)/lib $(EZXDIR)/lib $(QT_EXTDIR)/lib
QMAKE_INCDIR_OPENGL   = /usr/X11R6/include
QMAKE_LIBDIR_OPENGL   = /usr/X11R6/lib

QMAKE_LINK      = iwmmxt_le-g++
QMAKE_LINK_SHLIB   = iwmmxt_le-g++
QMAKE_LINK_C      = iwmmxt_le-gcc #Qt4
QMAKE_LINK_C_SHLIB   = iwmmxt_le-gcc #Qt4
QMAKE_LFLAGS      =  #Qt4 +=
QMAKE_LFLAGS_RELEASE   =  #Qt4 +=
QMAKE_LFLAGS_DEBUG   =  #Qt4 +=
QMAKE_LFLAGS_APP   += #Qt4
QMAKE_LFLAGS_SHLIB   = -shared  #Qt4 +=
QMAKE_LFLAGS_PLUGIN   = $$QMAKE_LFLAGS_SHLIB  #Qt4 +=
QMAKE_LFLAGS_SONAME   = -Wl,-soname,  #Qt4 +=
QMAKE_LFLAGS_THREAD   =  #Qt4 +=
QMAKE_RPATH      = -Wl,-rpath,
QMAKE_LFLAGS_RPATH = -Wl,-rpath,
#Qt4: QMAKE_LFLAGS_RPATH

QMAKE_PCH_OUTPUT_EXT    = .gch

# -Bsymbolic-functions (ld) support
QMAKE_LFLAGS_BSYMBOLIC_FUNC = -Wl,-Bsymbolic-functions
QMAKE_LFLAGS_DYNAMIC_LIST = -Wl,--dynamic-list,

#
# qmake configuration for common linux
#

QMAKE_LIBS      =
QMAKE_LIBS_DYNLOAD   = -ldl
QMAKE_LIBS_X11      = -lXext -lX11 -lm
QMAKE_LIBS_X11SM   = -lSM -lICE
QMAKE_LIBS_NIS      = -lnsl
QMAKE_LIBS_QT      =  -lqte-mt -lezxappsdk -lipp-jp -lezxopenwindow -lipp-miscGen -lezxappbase -lezxjpeg -lezxpm
QMAKE_LIBS_QT_THREAD   = -lpthread -lqte-mt -lezxappsdk -lipp-jp -lezxopenwindow -lipp-miscGen -lezxappbase -lezxjpeg -lezxpm
QMAKE_LIBS_OPENGL   = -lGLU -lGL -lXmu
QMAKE_LIBS_OPENGL_QT   = -lGL -lXmu
QMAKE_LIBS_THREAD   = -lpthread -lqte-mt -lezxappsdk -lipp-jp -lezxopenwindow -lipp-miscGen -lezxappbase -lezxjpeg -lezxpm

QMAKE_MOC      = $(QTDIR)/bin/moc
QMAKE_UIC      = $(QTDIR)/bin/uic

QMAKE_AR      = iwmmxt_le-ar cqs
QMAKE_RANLIB      =

QMAKE_TAR      = tar -cf
QMAKE_GZIP      = gzip -9f

QMAKE_COPY      = cp -f
QMAKE_COPY_FILE         = $(COPY)
QMAKE_COPY_DIR          = $(COPY) -r
QMAKE_MOVE      = mv -f
QMAKE_DEL_FILE      = rm -f
QMAKE_DEL_DIR      = rmdir
QMAKE_STRIP             = iwmmxt_le-strip
QMAKE_STRIPFLAGS_LIB    += --strip-unneeded
QMAKE_CHK_DIR_EXISTS   = test -d
QMAKE_MKDIR      = mkdir -p

#
# qmake configuration for common unix
#

QMAKE_LEX      = flex
QMAKE_LEXFLAGS      +=
QMAKE_YACC      = yacc
QMAKE_YACCFLAGS      += -d
QMAKE_YACCFLAGS_MANGLE  += -p $base -b $base
QMAKE_YACC_HEADER       = $base.tab.h
QMAKE_YACC_SOURCE       = $base.tab.c
QMAKE_PREFIX_SHLIB      = lib
QMAKE_PREFIX_STATICLIB  = lib
QMAKE_EXTENSION_STATICLIB = a


在编译前,我们先选好 项目-Qt 版本 中的EZX,然后点击 构建步骤 qmake那行右边的详情,额外的参数写入 -spec linux-g++-montavista。
附件:
文件注释: mkspec
mkspec.png
mkspec.png [ 108.96 KiB | 被浏览 1531 次 ]


最后,在下方的 构建环境变量编辑QTDIR, PATH等变量为你交叉编译所需的值,比如交叉编译器的路径。
附件:
文件注释: setenv
setenv.png
setenv.png [ 113.29 KiB | 被浏览 1531 次 ]


这些都做好后,就可以开始用qt creator进行交叉编译了。
这种方法有点美中不足的地方,比如每个工程都要在 项目里设置qmake 的参数和环境变量,qmake参数中QMLJSDEBUGGER_PATH去不掉,生成的Makefile会有很多不许要的东西比如DIST=各种prf文件。


附件:
QtCreator+MyEnv.pdf [381.52 KiB]
被下载 47 次
页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译