嵌入式开发者社区

标题: qt arm 4.8.3 代码不能编译通过 [打印本页]

作者: tumi    时间: 2017-4-29 19:12
标题: qt arm 4.8.3 代码不能编译通过
本帖最后由 tumi 于 2017-5-1 10:15 编辑
* l7 i& n  Y4 C' d3 W
0 [! h& q8 _; v0 y) X! C我用的ubuntu16.04的64位的系统4 u: L/ L" U9 C1 W7 g/ w% \$ A
+ C' \; K4 d2 l% I$ |' H# W5 z% u0 A
我的用户名是arm
7 X2 X0 S$ ?8 Q& y/ ]. ~  s我只用qt做一个无界面的软件开发,所以不用移植tslib。
  ^; I0 n+ p8 {0 Y, l; j* M8 [sudo apt install gcc$ k. q$ K4 U/ q: k( p  u
) \! Q* H! `9 s( L
首先安装 arm-none-linux-gnueabi-gcc
' R  G4 v5 k6 h4 V' d/ `$ G将tools目录下面的arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
& e/ F. c" G. A" n- s% }9 J拷贝到主目录下面
7 H/ ^; x. P6 V! l! I然后解压到此处。arm-2009q15 v! l0 q8 @% a
最后,修改/etc/profile在最后添加上。
( Z' ^6 b8 ^1 _% e: N! c! o3 cexport PATH=$PATH:/home/arm/arm-2009q1/bin* o- I5 u; f) C. y2 V! \
5 j& J/ t# `. a4 ?! I
运行 arm-none-linux-gnueabi-gcc,运行不了。然后我就装了支持32位程序的库4 i, S1 V1 t7 ~6 M7 T' U
sudo apt-get install lib32ncurses5 ​3 N8 z* J) c" A
sudo apt-get install lib32z1
. Y  g4 U1 p6 a$ S3 y' O5 g1 a$ B4 u9 R9 @; i8 A! h/ v$ Y/ P! b  A

1 M# ?( P) |+ A# x" E现在 交叉编译器已经可以编译简单的c代码了。/ Z$ k( Y! T6 p7 l' W, u. y
下面我来搞qt arm linux的移植。* v8 S. {/ f7 R- M0 F* s
& b0 p- r- @& {; s/ T) H
下面这句话,可以把一些必要的库装上。装qt-creator-2.6.1时需要
$ o$ D( J5 y' msudo apt-get install g++-multilib libx11-dev libxext-dev libxtst-dev zlib1g-dev lib32ncurses5 lib32z1 libpng-dev autoconf automake libtool6 b3 Y  w, _& V, A1 s
/ h/ W; C' ~8 H3 ~1 o
解压qt-everywhere-opensource-src-4.8.3' ]& @$ H( k6 W5 k* j, t# ?! h6 e) t
到它的目录下面。
- q# U, e; q# v9 o0 i- Q6 @( C- {cp -a mkspecs/qws/linux-arm-g++/ mkspecs/qws/linux-omapl138-g++ 2 \2 Z2 G! s; g" E1 A: |
sed -i "s/arm-linux/arm-none-linux-gnueabi/g" mkspecs/qws/linux-omapl138-g++/qmake.conf / N- _) W  L; A3 r$ K) E
echo -e "o\nyes" | ./configure -prefix /home/arm/qtlib/qt-arm-4.8.3 -embedded arm -xplatform qws/linux-omapl138-g++ -no-webkit -qt-libtiff -qt-libmng -no-neon -qtlibinfix E
9 i& [9 x8 B2 S' Dmake -j8 && make install
! Q2 w, a7 F  ?5 S. N7 W) \- {arm版的就完成了。) [7 b- Y" b/ o; b2 [0 n8 O
然后再解压一次qt-everywhere-opensource-src-4.8.3
- X1 R0 `( f, l# X3 h% z9 hecho -e "o\nyes" | ./configure -prefix /home/arm/qtlib/qt-x86-4.8.3  -no-gtkstyle
$ P" l0 k* w4 \9 A  Pmake -j8 && make install9 b0 x9 \+ M; p- Z. |
, @9 t/ r( L; g, T- N# ?% q
" l2 w; J  t( z5 V7 z; D: h; w
配置完成qt-creator
2 M& A6 S5 y+ A' J3 w8 \- w7 ]6 f! X
新建了一个项目
/ e) D  m0 N, K% q- ~调试发现,x86版本的 发布软件没问题
1 W4 a+ n: V  T% W2 O; H* e[attach]2261[/attach]
% h: v8 `7 ]; ^8 M0 \忽略到所有的,可以进入断点
: Y+ A5 B8 p! i然后在发布arm版时) p8 p" Z% B% I6 T2 g6 r0 {
[attach]2262[/attach]
. Q5 o6 n# W+ b; @! u% a! z
$ ?& E' Q0 V1 m) S然后我就醉了
! p# P$ X0 c* n) M. T3 p7 B7 d6 {1 ?5 K+ N
后来,我又装了一个ubuntu16.04的32位系统
* R$ n. k* ]- \, h% B% P1 i出来的效果也跟以上的结果一样/ B5 {& y  H" B: g2 Q2 X
sudo apt-get install libxtst-dev
& N* S( {1 u" m/ a/ z* Z& {  p) aecho -e "o\nyes" | ./configure -prefix /home/arm/qtlib/qt-x86-4.8.3  -no-gtkstyle
: X. @& I2 s9 ~% P' b% H: ]! vmake -j8 && make install
, i3 Y/ O: d9 h! a: O5 v+ t% C) g2 `3 L
cp -a mkspecs/qws/linux-arm-g++/ mkspecs/qws/linux-omapl138-g++ - Q3 s5 ^/ Y6 Z0 [( E( ~
sed -i "s/arm-linux/arm-none-linux-gnueabi/g" mkspecs/qws/linux-omapl138-g++/qmake.conf
5 m! O6 t9 W8 X% e# Fecho -e "o\nyes" | ./configure -prefix /home/arm/qtlib/qt-arm-4.8.3 -embedded arm -xplatform qws/linux-omapl138-g++ -no-webkit -qt-libtiff -qt-libmng -no-neon -qtlibinfix E! c8 z) p6 x6 \- Z# |( ^
make -j8 && make install
1 L: ~6 q& W/ U* [  m' Q1 }# D) m
# R1 O+ U/ @8 B. C! }
) O# I: U3 `; ?7 Z6 t  l; a; a  H& ~2 k8 ?7 ^
2 {; n4 b* B4 f6 B

, ]5 `1 M' O6 l5 h4 G5 \; X' O
作者: human    时间: 2017-4-30 21:12
加sudo操作看看
作者: tumi    时间: 2017-5-1 08:02
human 发表于 2017-4-30 21:12+ n8 d7 x# _! J: q9 k. S% I
加sudo操作看看
3 |  m% s* g. _4 O) y% k0 j
你的意思是把库的编译工作,用管理员身份来搞嘛?我对arm库,搞过了。依然是同样的问题) P, i7 F; y' O4 r

作者: tumi    时间: 2017-5-1 08:02
tumi 发表于 2017-5-1 08:02
* p  ^. S6 V9 S# C; j* n" b- Y% d你的意思是把库的编译工作,用管理员身份来搞嘛?

+ g/ a- Y0 A3 C1 b& T4 w/ ~' V5 H我对arm库,搞过了。依然是同样的问题
作者: tenny    时间: 2017-5-2 08:36
mcsdk  里面有编译好的 Qt 库,直接使用即可,不需要自己再编译 Qt 库,参考使用文档
作者: tumi    时间: 2017-5-2 09:28
tenny 发表于 2017-5-2 08:36
6 K, F& {( p' w* w6 wmcsdk  里面有编译好的 Qt 库,直接使用即可,不需要自己再编译 Qt 库,参考使用文档 ...

) a' t8 a. O/ o" `9 ]# V* r找了好久好久,都没有找到,望指点
作者: tenny    时间: 2017-5-15 13:40
请致电技术支持




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4