10878|15

11

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

ubuntu交叉编译树莓派qt5 [复制链接]

主机系统是ubuntu
树莓派用的是2015-11-21-raspbian-jessie
交叉工具链用的官方github上面的tools(github.com/raspberrypi/tools.git)
Qt源码用的qt-everywhere-opensource-src-5.5.1
configure的参数用了
sudo ./configure -release -opengl es2 -device linux-rasp-pi2-g++ -device-option CROSS_COMPILE=~/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- -sysroot /mnt/raspberrypi2 -prefix /usr/local/Qt5Embedded
基本是官方官网提供的那些,因为路径没有设环境变量,所以直接打的地址

最后在make的过程中出现如下问题
/home/lyu/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /mnt/raspberrypi2/usr/lib/arm-linux-gnueabihf/libz.so: 没有那个文件或目录
/home/lyu/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /mnt/raspberrypi2/usr/lib/arm-linux-gnueabihf/libdl.so: 没有那个文件或目录
/home/lyu/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /mnt/raspberrypi2/usr/lib/arm-linux-gnueabihf/librt.so: 没有那个文件或目录
/home/lyu/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /mnt/raspberrypi2/usr/lib/arm-linux-gnueabihf/libm.so: 没有那个文件或目录
.obj/qlibrary_unix.o:qlibrary_unix.cpp:function qdlerror(): error: undefined reference to 'dlerror'
.obj/qlibrary_unix.o:qlibrary_unix.cpp:function QLibraryPrivate::unload_sys(): error: undefined reference to 'dlclose'
.obj/qlibrary_unix.o:qlibrary_unix.cpp:function qt_linux_find_symbol_sys(char const*): error: undefined reference to 'dlsym'
.obj/qlibrary_unix.o:qlibrary_unix.cpp:function QLibraryPrivate::resolve_sys(char const*): error: undefined reference to 'dlsym'
.obj/qlibrary_unix.o:qlibrary_unix.cpp:function QLibraryPrivate::load_sys(): error: undefined reference to 'dlopen'
.obj/qbytearray.o:qbytearray.cpp:function qUncompress(unsigned char const*, int): error: undefined reference to 'uncompress'
.obj/qbytearray.o:qbytearray.cpp:function qCompress(unsigned char const*, int, int): error: undefined reference to 'compress2'
.obj/qdatetime.o:qdatetime.cpp:function fromIsoTimeString(QStringRef const&, Qt::DateFormat, bool*): error: undefined reference to 'pow'
.obj/qdatetime.o:qdatetime.cpp:function fromIsoTimeString(QStringRef const&, Qt::DateFormat, bool*): error: undefined reference to 'floorf'
.obj/qdatetime.o:qdatetime.cpp:function fromIsoTimeString(QStringRef const&, Qt::DateFormat, bool*): error: undefined reference to 'pow'
.obj/qeasingcurve.o:qeasingcurve.cpp:function easeCosineCurve(double): error: undefined reference to 'cos'
.obj/qeasingcurve.o:qeasingcurve.cpp:function easeInOutSine(double): error: undefined reference to 'cos'
.obj/qeasingcurve.o:qeasingcurve.cpp:function easeSineCurve(double): error: undefined reference to 'sin'
.obj/qeasingcurve.o:qeasingcurve.cpp:function easeOutSine(double): error: undefined reference to 'sin'
.obj/qeasingcurve.o:qeasingcurve.cpp:function easeOutCurve(double): error: undefined reference to 'sin'
.obj/qeasingcurve.o:qeasingcurve.cpp:function easeInOutCirc(double): error: undefined reference to 'sqrt'
.obj/qeasingcurve.o:qeasingcurve.cpp:function easeInOutCirc(double): error: undefined reference to 'sqrt'
.obj/qeasingcurve.o:qeasingcurve.cpp:function easeOutCirc(double): error: undefined reference to 'sqrt'
.obj/qeasingcurve.o:qeasingcurve.cpp:function easeInCirc(double): error: undefined reference to 'sqrt'
.obj/qeasingcurve.o:qeasingcurve.cpp:function easeOutInSine(double): error: undefined reference to 'cos'
.obj/qeasingcurve.o:qeasingcurve.cpp:function easeOutInSine(double): error: undefined reference to 'sin'
.obj/qeasingcurve.o:qeasingcurve.cpp:function easeInOutExpo(double): error: undefined reference to 'pow'
.obj/qeasingcurve.o:qeasingcurve.cpp:function easeInOutExpo(double): error: undefined reference to 'pow'
.obj/qeasingcurve.o:qeasingcurve.cpp:function easeInSine(double): error: undefined reference to 'cos'
.obj/qeasingcurve.o:qeasingcurve.cpp:function ElasticEase::value(double): error: undefined reference to 'asin'
.obj/qeasingcurve.o:qeasingcurve.cpp:function ElasticEase::value(double): error: undefined reference to 'asin'
.obj/qeasingcurve.o:qeasingcurve.cpp:function ElasticEase::value(double): error: undefined reference to 'asin'
.obj/qeasingcurve.o:qeasingcurve.cpp:function ElasticEase::value(double): error: undefined reference to 'asin'
.obj/qline.o:qline.cpp:function QLineF::angle() const: error: undefined reference to 'atan2'
.obj/qline.o:qline.cpp:function QLineF::setAngle(double): error: undefined reference to 'sincos'
.obj/qline.o:qline.cpp:function QLineF::fromPolar(double, double): error: undefined reference to 'sincos'
.obj/qline.o:qline.cpp:function QLineF::angle(QLineF const&) const: error: undefined reference to 'acos'
.obj/qlocale_tools.o:qlocale_tools.cpp:function qdtoa(double, int, int, int*, int*, char**, char**): error: undefined reference to 'feholdexcept'
.obj/qlocale_tools.o:qlocale_tools.cpp:function qdtoa(double, int, int, int*, int*, char**, char**): error: undefined reference to 'fesetenv'
.obj/qrect.o:qrect.cpp:function QRectF::toAlignedRect() const: error: undefined reference to 'floor'
.obj/qrect.o:qrect.cpp:function QRectF::toAlignedRect() const: error: undefined reference to 'ceil'
.obj/qrect.o:qrect.cpp:function QRectF::toAlignedRect() const: error: undefined reference to 'floor'
.obj/qrect.o:qrect.cpp:function QRectF::toAlignedRect() const: error: undefined reference to 'ceil'
.obj/qtimeline.o:qtimeline.cpp:function QTimeLine::frameForTime(int) const: error: undefined reference to 'ceil'
collect2: error: ld returned 1 exit status
Makefile:1213: recipe for target '../../lib/libQt5Core.so.5.5.1' failed
make[2]: *** [../../lib/libQt5Core.so.5.5.1] Error 1
make[2]: Leaving directory '/home/lyu/qt5_for_arm/qt-everywhere-opensource-src-5.5.1/qtbase/src/corelib'
Makefile:170: recipe for target 'sub-corelib-make_first' failed
make[1]: *** [sub-corelib-make_first] Error 2
make[1]: Leaving directory '/home/lyu/qt5_for_arm/qt-everywhere-opensource-src-5.5.1/qtbase/src'
Makefile:45: recipe for target 'sub-src-make_first' failed
make: *** [sub-src-make_first] Error 2


在最上面的那个问题出现的没有那个文件或者目录最后找的时候找到了,查找相关资料怀疑是raspbian用的gcc和工具链的gcc版本不一致,但是不知道对不对,我查过树莓派的gcc版本是4.9.2。交叉工具链的gcc版本是4.8.3,。但是在之前直接交叉编译一些小文件的时候是可以做到的,在pc编译传到树莓派运行,但是现在在交叉编译qt5的时候出现了问题。不知道有没有大神指教,才开始弄得这个东西,好多都还是不懂。


最新回复

照着这个弄就可以了 http://wiki.qt.io/Native_Build_of_Qt5_on_a_Raspberry_Pi  详情 回复 发表于 2016-4-7 00:48
点赞 关注

回复
举报

6040

帖子

195

TA的资源

版主

沙发
 
看这样子应该是缺少某些库导致的。
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
lcofjp 发表于 2016-1-28 14:18
看这样子应该是缺少某些库导致的。

也不知道怎么查!现在十分苦恼,我电脑就是32位的系统,所以我应该不存在安装32位的依赖的问题呀!

点评

是你的交叉编译工具缺少某些库,如果用不到这些库则不会出问题,要是用到了就报错了。你可以搜一下那些找不到的库文件,是否确实存在,如果存在,想办法设置一下路径。  详情 回复 发表于 2016-1-28 14:26
 
 
 

回复

6040

帖子

195

TA的资源

版主

4
 
creepsl 发表于 2016-1-28 14:23
也不知道怎么查!现在十分苦恼,我电脑就是32位的系统,所以我应该不存在安装32位的依赖的问题呀!

是你的交叉编译工具缺少某些库,如果用不到这些库则不会出问题,要是用到了就报错了。你可以搜一下那些找不到的库文件,是否确实存在,如果存在,想办法设置一下路径。

点评

/home/lyu/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /mnt/raspberrypi2/usr/l  详情 回复 发表于 2016-1-29 12:57
 
 
 

回复

1274

帖子

2

TA的资源

版主

5
 
貌似是缺少库导致的

点评

/home/lyu/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /mnt/raspberrypi2/usr/l  详情 回复 发表于 2016-1-29 12:57
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

6
 
lcofjp 发表于 2016-1-28 14:26
是你的交叉编译工具缺少某些库,如果用不到这些库则不会出问题,要是用到了就报错了。你可以搜一下那些找 ...

/home/lyu/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /mnt/raspberrypi2/usr/lib/arm-linux-gnueabihf/libz.so: 没有那个文件或目录
/home/lyu/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /mnt/raspberrypi2/usr/lib/arm-linux-gnueabihf/libdl.so: 没有那个文件或目录
/home/lyu/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /mnt/raspberrypi2/usr/lib/arm-linux-gnueabihf/librt.so: 没有那个文件或目录
/home/lyu/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /mnt/raspberrypi2/usr/lib/arm-linux-gnueabihf/libm.so: 没有那个文件或目录

这几个是么?等下我截图,可是实际上,我挂载的镜像里面是有这几个的。
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

7
 
通宵敲代码 发表于 2016-1-29 10:38
貌似是缺少库导致的

/home/lyu/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /mnt/raspberrypi2/usr/lib/arm-linux-gnueabihf/libz.so: 没有那个文件或目录
/home/lyu/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /mnt/raspberrypi2/usr/lib/arm-linux-gnueabihf/libdl.so: 没有那个文件或目录
/home/lyu/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /mnt/raspberrypi2/usr/lib/arm-linux-gnueabihf/librt.so: 没有那个文件或目录
/home/lyu/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /mnt/raspberrypi2/usr/lib/arm-linux-gnueabihf/libm.so: 没有那个文件或目录

这几个么?可是挂载的镜像里面是有的,我找到过,我待会截图!

点评

你找的到,编译系统可不一定找得到!  详情 回复 发表于 2016-1-29 14:07
你找的到,编译系统可不一定找得到!  详情 回复 发表于 2016-1-29 14:06
 
 
 

回复

1274

帖子

2

TA的资源

版主

8
 
creepsl 发表于 2016-1-29 12:57
/home/lyu/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-g ...

你找的到,编译系统可不一定找得到!

点评

所以我需要怎么样弄呢?指定一下路径?  详情 回复 发表于 2016-1-29 15:09
 
 
 

回复

1274

帖子

2

TA的资源

版主

9
 
creepsl 发表于 2016-1-29 12:57
/home/lyu/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-g ...

你找的到,编译系统可不一定找得到!
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

10
 
通宵敲代码 发表于 2016-1-29 14:06
你找的到,编译系统可不一定找得到!

所以我需要怎么样弄呢?指定一下路径?
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

11
 
这些分别是它说没找到的地方,所以我需要怎么指定一下?

2016-01-29 15-03-15屏幕截图.png (65.95 KB, 下载次数: 0)

2016-01-29 15-03-15屏幕截图.png

2016-01-29 15-03-56屏幕截图.png (84.17 KB, 下载次数: 0)

2016-01-29 15-03-56屏幕截图.png

2016-01-29 15-04-23屏幕截图.png (92.19 KB, 下载次数: 0)

2016-01-29 15-04-23屏幕截图.png

2016-01-29 15-05-17屏幕截图.png (57.23 KB, 下载次数: 0)

2016-01-29 15-05-17屏幕截图.png
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

12
 
现在大概知道了是什么回事,不过只是我的估计。因为是在mnt下面那个raspberrypi2的文件夹下面挂在了树莓派的源码,按照qt官方给的需要选定其作为lib等文件的查找地址,所以在configure里面有选定它,最后的问题是找不到文件或目录,我截图其实有,再后来用命令行查看具体信息的时候发现它们基本都是一个链接指向的都是/lib/arm-linux-gnueabihf文件夹在树莓派上运行肯定不会出错,但是当我挂载在ubuntu下面的时候,这样子的绝对路径肯定直接指向了ubuntu的lib文件夹,显然这个文件夹下面是没有arm-linux-gnueabihf文件夹的,所以最后出错了。
问题可能找出来了,可是现在的根本不知道该如何解决这个问题,在接下来的编译过程肯定还有这样子的链接,我吧这个文件夹复制过去觉得有可能不能成功。
 
 
 

回复

7628

帖子

2

TA的资源

五彩晶圆(高级)

13
 
问题有两天了,我回答你一下吧。sysroot 参数指定了基系统的地址,prefix参数也是以这个目录作为前缀。既然是system 的root必然需要包含一个base system,这个base system就是你可以制作可加载系统的文件系统结构。base system部分内容可以直接拷贝交叉编译器的lib下文件。如果没有相关库,就需要以同样的sysroot目录结构交叉编译和install相关lib。如果不想折腾,最省事的办法是拷贝一个兼容的现成的文件系统,比如rpi的原生系统。

点评

最后的确如此,昨天晚上查出来那几个找不到的文件,是链接文件,指向的是一个绝对路径的一个地址,怀疑是这个样子没有所以没有找到文件,最后用权限复制了一个到电脑的同样目录下面,再make就通过了,昨天晚上全部编  详情 回复 发表于 2016-1-30 18:54
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

14
 
freebsder 发表于 2016-1-29 21:51
问题有两天了,我回答你一下吧。sysroot 参数指定了基系统的地址,prefix参数也是以这个目录作为前缀。既然 ...

最后的确如此,昨天晚上查出来那几个找不到的文件,是链接文件,指向的是一个绝对路径的一个地址,怀疑是这个样子没有所以没有找到文件,最后用权限复制了一个到电脑的同样目录下面,再make就通过了,昨天晚上全部编译完成,但是没有测试是否成功。不过查看对应目录下面的qmake版本的确是嵌入式系统的!
 
 
 

回复

1371

帖子

6

TA的资源

版主

15
 
来学习一下
 
个人签名专注智能产品的研究与开发,专注于电子电路的生产与制造……QQ:2912615383,电子爱好者群: void
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

16
 
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表