12.04不能用root登录了,只能在终端上用命令 *** 作,在root账户下添加的环境变量在一般的账户下不能用,但运行的Qt程序在一般的账户下运行的,这就导致了交叉编译设计好的应用程序时,找不到编译器的错误。
这里保守一点,在两个地方都添加了环境变量:
一是在/etc/profile.二是在用户主目录下的.bashr添加这句话:
export
PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin
2.配置qt的编译选项
这里由两个办法配置:
把Qt
4.8.4的库的名字改成4.7.0,借用友善的两个脚本直接编译,这样很方便,自己写脚本,容易出错,不要把时间浪费在这上面,要把精力放在应用程序上。
tar zxvf qt-everywhere-opensource-src-4.8.4.tar.gz进入解压后文件目录,执行配置
root@emouse:~/study# cd qt-everywhere-opensource-src-4.8.4/
root@emouse:~/study/qt-everywhere-opensource-src-4.8.4# ./configure
修改配置文件
if [ -z "$QT_INSTALL_PREFIX" ]then
if [ "$CFG_DEV" = "yes" ]then
QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
elif [ "$PLATFORM_QWS" = "yes" -o "$PLATFORM_QPA" = "yes" ]then
if [ "$PLATFORM_QPA" = "yes" ]then
QT_INSTALL_PREFIX="/usr/local/Trolltech/QtLighthouse-${QT_VERSION}"
else
QT_INSTALL_PREFIX="/usr/local/Trolltech/QtEmbedded-${QT_VERSION}"
fi
if [ "$PLATFORM" != "$XPLATFORM" ]then
QT_INSTALL_PREFIX="${QT_INSTALL_PREFIX}-${CFG_ARCH}"
fi
elif [ -d "$EPOCROOT" ] &&[ "$XPLATFORM_SYMBIAN" = "yes" ]then
if [ "$XPLATFORM_SYMBIAN" = "yes" ]then
QT_INSTALL_PREFIX="$EPOCROOT/epoc32/"
QT_INSTALL_LIBS="$EPOCROOT/epoc32/release/armv5/lib/"
fi
else
QT_INSTALL_PREFIX="/usr/local/Trolltech/Qt-${QT_VERSION}"
ok
启动
/usr/local/Trolltech/Qt-4.8.4/bin/designer
配置qt交叉编译安装,总是提示arm-linux-g++:没有那个文件或目录问题解决方法:以Ubuntu系统为例,我自己安装的是arm-linux-gnueabi-gcc和arm-linux-gnueabi-g++,所以到了编译指令make后,出现以上错误。
经过多方查找资料,在http://bbs.csdn.net/topics/390630552?page=1找到:
知道需要去解压后文件路径的mkspecs/qws/linux-arm-g++中修改文件qmake.conf,把里面定义的编译器名称改成电脑中已安装的版本,如:
重新配置
./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-arm -embedded arm -lrt -little-endian
接着指令:make
ok了。解决了问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)