设为首页收藏本站
查看: 66524|回复: 19

[应用笔记] Qt prebuilt SDK 开发环境使用说明

[复制链接]

21

主题

21

回帖

575

积分

管理员

积分
575
oneal.tang 发表于 2015-7-14 11:58:30 | 显示全部楼层 |阅读模式
我们提供的手册中已经介绍了如何从源码编译移植Qt,另外还有一个已经编译好的Qt SDK,如果您只是需要开发Qt应用程序,那么可以不必编译移植Qt源码,而是直接使用Qt SDK即可,之前我们提供的Qt SDK环境路径存在一些问题,需要修改,对一些第一次使用的用户带来了困惑,现在我们重新释放了Qt SDK包,只需要配置一下gcc以及当前SDK包所在路径即可完成环境搭建。

解压Qt-prebuilt-SDK
[mw_shl_code=bash,true]$ cd ${WORKDIR}/Qtgui
$ tar -zxvf qt-prebuilt-sdk.tar.gz
$ cd qt-prebuilt-sdk[/mw_shl_code]

打开并编辑qt-prebuilt-sdk-env文件,将TOOLCHAIN修改为交叉编译器所在路径,将QT_PREFIX修改为qt-prebuilt-sdk所在路径。
[mw_shl_code=bash,true]export TOOLCHAIN=<gcc toolchain path>
export QT_PREFIX=<qt-prebuilt-sdk path>
[/mw_shl_code]
执行此环境文件:
[mw_shl_code=bash,true]$ source qt-prebuilt-sdk-env[/mw_shl_code]

编译QtHelloworld测试SDK
创建Qt代码文件helloworld.cpp:
[mw_shl_code=bash,true]$ touch helloworld.cpp[/mw_shl_code]
输入如下代码:
[mw_shl_code=cpp,true]#include <QApplication>
#include <QLabel>
int main(int argc, char **argv){
    QApplication app(argc,argv);
    QLabel label("Make Your idea Real!");
    label.show();
    return app.exec();
}
[/mw_shl_code]
创建helloworld.pro文件:
[mw_shl_code=bash,true]$ touch helloworld.pro[/mw_shl_code]
输入如下代码:
[mw_shl_code=bash,true]QT += core gui
SOURCES += helloworld.cpp[/mw_shl_code]
编译helloworld:
[mw_shl_code=bash,true]$ qmake helloworld.pro
$ make[/mw_shl_code]

Qt-prebuilt-SDK下载地址

点击这里开始下载


回复

使用道具 举报

3

主题

20

回帖

241

积分

中级会员

积分
241
沉沦的夏天 发表于 2015-7-20 09:59:42 | 显示全部楼层
请问一下你们重新释放的QT SDK在哪?我安光盘里面的配置环境变量后,用光盘自带的QT SDK编译手册最简单的例子,make的时候出现了以下错误,请问是什么问题?

[mw_shl_code=applescript,true]zouqian@zouqian:~/arm_workspace/test/hellomyir$ make
arm-linux-gnueabihf-g++ -lts -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I/opt/qt-4.8.5-sdk/mkspecs/qws/linux-arm-g++ -I. -I/media/data/myir/am335x/qt4.8.5/include/QtCore -I/media/data/myir/am335x/qt4.8.5/include/QtNetwork -I/media/data/myir/am335x/qt4.8.5/include/QtGui -I/media/data/myir/am335x/qt4.8.5/include -I. -I. -o hellomyir.o hellomyir.cpp
hellomyir.cpp:1:25: fatal error: QApplication: No such file or directory
compilation terminated.
make: *** [hellomyir.o] Error 1
[/mw_shl_code]


另外,有你们的QT SDk,那我虚拟机上还需要装QT吗?
回复 支持 反对

使用道具 举报

21

主题

21

回帖

575

积分

管理员

积分
575
 楼主| oneal.tang 发表于 2015-7-20 11:22:10 | 显示全部楼层
沉沦的夏天 发表于 2015-7-20 09:59
请问一下你们重新释放的QT SDK在哪?我安光盘里面的配置环境变量后,用光盘自带的QT SDK编译手册最简单的例 ...

已上传到
http://pan.baidu.com/s/1dDsCK61
用Qt SDK就可以编译Qt应用程序了,无需再编译移植Qt源码
回复 支持 反对

使用道具 举报

3

主题

20

回帖

241

积分

中级会员

积分
241
沉沦的夏天 发表于 2015-7-20 14:16:22 | 显示全部楼层
恩恩,我有测试了一下,我的路径如下:
/opt/qt-prebuilt-sdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/zouqian/arm_workspace/Toolchain/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin

但是make的时候仍然有错误,
[mw_shl_code=applescript,true]arm-linux-gnueabihf-g++ -lts -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/opt/qt-prebuilt-sdk/mkspecs/qws/linux-arm-g++ -I. -I/opt/qt-prebuilt-sdk/include/QtCore -I/opt/qt-prebuilt-sdk/include/QtNetwork -I/opt/qt-prebuilt-sdk/include/QtGui -I/opt/qt-prebuilt-sdk/include -I. -o helloworld.o helloworld.cpp
arm-linux-gnueabihf-g++ -lts -Wl,-O1 -o helloworld helloworld.o    -L/opt/qt-prebuilt-sdk/lib -lQtGui -L/home/myir/Workdir/Filesystem/targetNFS/usr/local/tslib/lib -L/opt/qt-4.8.5/lib -lQtNetwork -lQtCore -lpthread
/home/zouqian/arm_workspace/Toolchain/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lts
/home/zouqian/arm_workspace/Toolchain/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/../arm-linux-gnueabihf/libc/lib/arm-linux-gnueabihf/libpthread.so.0: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
make: *** [helloworld] Error 1
[/mw_shl_code]

请问这是什么原因?实际开发,可以用PC上的QT,再光盘提供的交叉编译到板子可以吗?因为pC上的QT控件可以拖的
回复 支持 反对

使用道具 举报

21

主题

21

回帖

575

积分

管理员

积分
575
 楼主| oneal.tang 发表于 2015-7-20 15:54:50 | 显示全部楼层
沉沦的夏天 发表于 2015-7-20 14:16
恩恩,我有测试了一下,我的路径如下:
/opt/qt-prebuilt-sdk/bin:/usr/local/sbin:/usr/local/bin:/usr/s ...

找不到tslib库,请重新下载一楼的链接,或者自己编译tslib加入Makefile
回复 支持 反对

使用道具 举报

3

主题

20

回帖

241

积分

中级会员

积分
241
沉沦的夏天 发表于 2015-7-23 13:24:03 | 显示全部楼层
本帖最后由 沉沦的夏天 于 2015-7-23 16:33 编辑

按照你给的连接,还是会有问题,环境变量应该都已经配好了,每次make的时候,就会报错。
SDK那个环境变量文件如下,已经包含了tslib了:
[mw_shl_code=applescript,true]export TOOLCHAIN=/home/zouqian/arm_workspace/Toolchain/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin
export QT_PREFIX=/opt/qt-prebuilt-sdk
export TSLIBPATH=${QT_PREFIX}/tslib/lib
export QMAKESPEC=${QT_PREFIX}/mkspecs/qws/linux-arm-g++
export SDK_PATH_TARGET=${QT_PREFIX}/bin
export OE_QMAKE_LIBDIR_QT=${QT_PREFIX}/lib
export OE_QMAKE_INCDIR_QT=${QT_PREFIX}/include
export PATH=${SDK_PATH_TARGET}:$PATH:$TOOLCHAIN
[/mw_shl_code]

查看当前环境变量如下:
[mw_shl_code=applescript,true]zouqian@zouqian:~/arm_workspace/test/hellomyir$ echo  $PATH
/opt/qt-prebuilt-sdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/zouqian/arm_workspace/Toolchain/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin
[/mw_shl_code]

但是make的时候,就是会出现错误,中间有个路径应该是你电脑上,您看我应该怎么修改?

[mw_shl_code=applescript,true]arm-linux-gnueabihf-g++ -lts -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/opt/qt-prebuilt-sdk/mkspecs/qws/linux-arm-g++ -I. -I/opt/qt-prebuilt-sdk/include/QtCore -I/opt/qt-prebuilt-sdk/include/QtNetwork -I/opt/qt-prebuilt-sdk/include/QtGui -I/opt/qt-prebuilt-sdk/include -I. -I. -o helloworld.o helloworld.cpp
arm-linux-gnueabihf-g++ -lts -Wl,-O1 -o hellomyir helloworld.o    -L/opt/qt-prebuilt-sdk/lib -lQtGui -L/home/myir/Workdir/Filesystem/targetNFS/usr/local/tslib/lib -L/opt/qt-4.8.5/lib -lQtNetwork -lQtCore -lpthread
/home/zouqian/arm_workspace/Toolchain/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/../arm-linux-gnueabihf/libc/lib/arm-linux-gnueabihf/libpthread.so.0: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
make: *** [hellomyir] Error 1
[/mw_shl_code]
回复 支持 反对

使用道具 举报

21

主题

21

回帖

575

积分

管理员

积分
575
 楼主| oneal.tang 发表于 2015-7-26 21:32:52 | 显示全部楼层
沉沦的夏天 发表于 2015-7-23 13:24
按照你给的连接,还是会有问题,环境变量应该都已经配好了,每次make的时候,就会报错。
SDK那个环境变量 ...

你可能是没有用最新上传的这个,里面已经包含了tslib,你检查下xxx/qt-prebuilt-sdk/lib/下面有没有libts这些库文件。
回复 支持 反对

使用道具 举报

3

主题

20

回帖

241

积分

中级会员

积分
241
沉沦的夏天 发表于 2015-7-27 14:32:11 | 显示全部楼层
您好,我用的是你最新上传的,xxx/qt-prebuilt-sdk/lib这个里面有tslib,make的时候提示的信息是

……/libpthread.so.0: file not recognized: File format not recognized,是说什么文件没识别到?

困扰了很多天了:'(


回复 支持 反对

使用道具 举报

21

主题

21

回帖

575

积分

管理员

积分
575
 楼主| oneal.tang 发表于 2015-7-28 16:20:10 | 显示全部楼层
沉沦的夏天 发表于 2015-7-27 14:32
您好,我用的是你最新上传的,xxx/qt-prebuilt-sdk/lib这个里面有tslib,make的时候提示的信息是

……/l ...

你是编译什么程序的时候出的这个错,test里面的helloworld能编译通过不?
回复 支持 反对

使用道具 举报

3

主题

20

回帖

241

积分

中级会员

积分
241
沉沦的夏天 发表于 2015-7-28 17:09:34 | 显示全部楼层
我绝对是用了你新的连接里面的qt-prebuild-sdk的,里面的test有个makefile文件,里面库是你的路径,肯定不行。  我重新编译,tslib路径绝对包含进去了,环境里面改装成我的路径了,如下图所示,
[mw_shl_code=applescript,true]export TOOLCHAIN=/home/zouqian/arm_workspace/Toolchain/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin
export QT_PREFIX=/home/zouqian/arm_workspace/qt-prebuilt-sdk

export TSLIBPATH=${QT_PREFIX}/tslib/lib
export QMAKESPEC=${QT_PREFIX}/mkspecs/qws/linux-arm-g++
export SDK_PATH_TARGET=${QT_PREFIX}/bin
export OE_QMAKE_LIBDIR_QT=${QT_PREFIX}/lib
export OE_QMAKE_INCDIR_QT=${QT_PREFIX}/include
export PATH=${SDK_PATH_TARGET}:$PATH:$TOOLCHAIN
[/mw_shl_code]


可是make的时候还是出错,
[mw_shl_code=applescript,true]arm-linux-gnueabihf-g++ -lts -Wl,-O1 -o hellomyir helloworld.o    -L/home/zouqian/arm_workspace/qt-prebuilt-sdk/lib -lQtGui -L/home/zouqian/arm_workspace/qt-prebuilt-sdk/tslib/lib  
/home/zouqian/arm_workspace/Toolchain/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/../../../../arm-linux-gnueabihf/lib/libstdc++.so: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
make: *** [hellomyir] Error 1
[/mw_shl_code]


上面的错误,很奇怪居然还有个库文件是你的路径下的,另外它的提示信息是文件格式不能够识别!

我还参考了下面这个链接,想用qt5,但是按手册编译tslib都不行,更别说编译qt了。
http://bbs.myir-tech.com/forum.p ... p;tid=7174#lastpost

求助!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

21

主题

21

回帖

575

积分

管理员

积分
575
 楼主| oneal.tang 发表于 2015-7-29 10:55:48 | 显示全部楼层
沉沦的夏天 发表于 2015-7-28 17:09
我绝对是用了你新的连接里面的qt-prebuild-sdk的,里面的test有个makefile文件,里面库是你的路径,肯定不 ...

SDK test里面没有Makefikle文件,Makefille文件用qmake生成。
Makefile中有编译时的路径是不影响的,这个测试过,因为已经在qt的lib里面找到tslib了,不需要去后面找,即使那个路径出现在Makefile中也没有问题,你这个可能是其他原因。

注意系统必须是32位。然后换个目录试试,换到用户目录,不要放在opt下。
回复 支持 反对

使用道具 举报

3

主题

20

回帖

241

积分

中级会员

积分
241
沉沦的夏天 发表于 2015-7-30 15:47:45 | 显示全部楼层
我把dk确实是放在用户目录下的,系统用的就是你们光盘里面的虚拟机10.04,,32位的!
你传的sdk下面,test里面就两个文件,helloworld.pro 和 Makefile,我自己按你上面的教程加了一个cpp文件。
发现make和sudo make两次编译报错不一样,
make编译在上面显示了,
sudo make编译发现有这个错误,
[mw_shl_code=applescript,true]arm-linux-gnueabihf-g++ -lts -Wl,-O1 -o helloworld helloworld.o    -L/home/zouqian/arm_workspace/qt-prebuilt-sdk/lib -lQtGui -L/home/myir/Workdir/Filesystem/targetNFS/usr/local/tslib/lib -L/opt/qt-4.8.5/lib -lQtNetwork -lQtCore -lpthread
make: arm-linux-gnueabihf-g++: Command not found
make: *** [helloworld] Error 127
[/mw_shl_code]

这个问题耽误好久了,能帮我找一下具体的原因不?
回复 支持 反对

使用道具 举报

21

主题

21

回帖

575

积分

管理员

积分
575
 楼主| oneal.tang 发表于 2015-7-30 16:36:51 | 显示全部楼层
沉沦的夏天 发表于 2015-7-30 15:47
我把dk确实是放在用户目录下的,系统用的就是你们光盘里面的虚拟机10.04,,32位的!
你传的sdk下面,test ...

test文件夹里面是helloworld.cpp和helloworld.pro两个文件,没有Makefile,Makefile文件是用qmake helloworld.pro命令生成的,你删掉那个Makefile文件重新生成一次。
回复 支持 反对

使用道具 举报

3

主题

20

回帖

241

积分

中级会员

积分
241
沉沦的夏天 发表于 2015-7-30 16:49:35 | 显示全部楼层
是的,我删除了,然后只剩helloworld.cpp和helloworld.pro,重新编译还是出错
回复 支持 反对

使用道具 举报

21

主题

21

回帖

575

积分

管理员

积分
575
 楼主| oneal.tang 发表于 2015-7-30 18:44:01 | 显示全部楼层
沉沦的夏天 发表于 2015-7-30 16:49
是的,我删除了,然后只剩helloworld.cpp和helloworld.pro,重新编译还是出错

刚才又随便找了台ubuntu 10.04 32bit的机器测了下,没有问题,

make: arm-linux-gnueabihf-g++: Command not found
这个错误是你编译器没找到的问题了,使用
which arm-linux-gnueabihf-g++ 命令看你的工具链对了没有
回复 支持 反对

使用道具 举报

3

主题

20

回帖

241

积分

中级会员

积分
241
沉沦的夏天 发表于 2015-8-4 14:21:25 | 显示全部楼层
恩,上次找到的问题确实是因为教程编译链是在windows下解压后复制过去而导致无法make的!

现在有个问题,我想在Qtcreator配置 kits,在builld&Run中添加Qt版本的时候,用你的SDk里面的qmake那个路径,窗口中提醒这个QT版本没有安装好,请run make install,是不是要怎么去安装一下,让creator识别到这个版本?
回复 支持 反对

使用道具 举报

3

主题

2

回帖

38

积分

实习版主

积分
38
ztshun 发表于 2015-8-5 10:20:17 | 显示全部楼层
本帖最后由 ztshun 于 2015-8-5 10:23 编辑
沉沦的夏天 发表于 2015-8-4 14:21
恩,上次找到的问题确实是因为教程编译链是在windows下解压后复制过去而导致无法make的!

现在有个问题 ...

你好,附件中有一个补丁文件,请下载拷贝到 qt-prebuilt-sdk目录下,执行[mw_shl_code=bash,true]patch -p0 < env.patch
[/mw_shl_code],重新打开一个终端,执行[mw_shl_code=bash,true]source qt-prebuilt-sdk-env[/mw_shl_code],然后在此控制台下用命令行启动qtcreator,切记不能用图像界面的菜单图标启动,再配置qt版本,就不会报错了
env.rar (358 Bytes, 下载次数: 14727)

回复 支持 反对

使用道具 举报

3

主题

20

回帖

241

积分

中级会员

积分
241
沉沦的夏天 发表于 2015-8-5 22:14:18 | 显示全部楼层
你好,我按照你的方法做了一遍,结果其实就是让SDK_PATH_TARGET=/opt/qt-prebuilt-sdk,但是还是qtcreator还是识别不了这个SDK!!!请问你已经尝试过了这样了吗?

回复 支持 反对

使用道具 举报

3

主题

2

回帖

38

积分

实习版主

积分
38
ztshun 发表于 2015-8-7 11:31:58 | 显示全部楼层
沉沦的夏天 发表于 2015-8-5 22:14
你好,我按照你的方法做了一遍,结果其实就是让SDK_PATH_TARGET=/opt/qt-prebuilt-sdk,但是还是qtcreator还 ...

测试通过了,请确认是从执行过环境文件的终端启动qtcreator
回复 支持 反对

使用道具 举报

2

主题

2

回帖

31

积分

新手上路

积分
31
kpdqzxl 发表于 2016-1-13 10:58:50 | 显示全部楼层
有pru驱动吗,谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录

本版积分规则

Archiver|手机版|小黑屋|米尔科技论坛   

GMT+8, 2024-11-22 00:51 , Processed in 0.085739 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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