嵌入式开发者社区

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

作者: tumi    时间: 2017-4-29 19:12
标题: qt arm 4.8.3 代码不能编译通过
本帖最后由 tumi 于 2017-5-1 10:15 编辑
9 G4 Q' Y4 ~2 @" p* U6 O0 @! r" c
& H: ~9 s0 g. x* V3 g- _我用的ubuntu16.04的64位的系统
1 B5 k8 ^8 {0 d* n3 T
" w+ n0 u$ @" H8 ]1 p( ?0 U我的用户名是arm
3 \0 Q2 Y8 i1 I* @. n* M4 N我只用qt做一个无界面的软件开发,所以不用移植tslib。
& x/ Y8 Z, r4 b2 ^sudo apt install gcc
9 l* a4 {7 y- D7 w9 ?
! u( A; a2 f2 U; ~7 e/ @' w3 J首先安装 arm-none-linux-gnueabi-gcc
' |  m- H2 j% s1 B$ M8 x将tools目录下面的arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2! I' Q  P5 @& G3 t9 A
拷贝到主目录下面! a* P6 j/ f. v) d* P* I( K
然后解压到此处。arm-2009q1
3 d8 y1 m# o% x最后,修改/etc/profile在最后添加上。. u7 _7 {, \8 u* u  L. [
export PATH=$PATH:/home/arm/arm-2009q1/bin
, \7 A# u& _! ]+ q9 g$ A- ]# }0 n# o
运行 arm-none-linux-gnueabi-gcc,运行不了。然后我就装了支持32位程序的库
2 V6 n6 [, M6 e# hsudo apt-get install lib32ncurses5 ​% f+ J7 I/ K2 p1 Z& U1 \
sudo apt-get install lib32z1
+ S* d+ C( Q' ^2 B  e
0 }# c: o/ [) K8 A
" ]; u# k* P. |现在 交叉编译器已经可以编译简单的c代码了。( |% ^. X0 C4 h! u7 q/ f. t2 p
下面我来搞qt arm linux的移植。' {3 i; T# L2 _% @6 E
  m) U# H/ w1 n! ?1 j* w
下面这句话,可以把一些必要的库装上。装qt-creator-2.6.1时需要
# \) Z6 `  b. a1 Zsudo apt-get install g++-multilib libx11-dev libxext-dev libxtst-dev zlib1g-dev lib32ncurses5 lib32z1 libpng-dev autoconf automake libtool6 X1 t" F7 E; E0 ]
- O8 G# o" a- I
解压qt-everywhere-opensource-src-4.8.3
: D- F1 h8 W/ x到它的目录下面。
6 |7 |8 S% L, K+ pcp -a mkspecs/qws/linux-arm-g++/ mkspecs/qws/linux-omapl138-g++
5 A3 ^2 W2 ?7 Osed -i "s/arm-linux/arm-none-linux-gnueabi/g" mkspecs/qws/linux-omapl138-g++/qmake.conf
8 R# P5 r6 c( C1 ~- z) cecho -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
' C& Y" ^. x3 l# o% ^make -j8 && make install9 {2 B. H8 F5 N8 C' `# d
arm版的就完成了。0 p: V0 d7 T6 R# b; z( d: q2 D7 ]
然后再解压一次qt-everywhere-opensource-src-4.8.3
% l8 U0 G- ^! \* K" `echo -e "o\nyes" | ./configure -prefix /home/arm/qtlib/qt-x86-4.8.3  -no-gtkstyle
: c3 q' W3 m1 B( cmake -j8 && make install
, Z4 h$ l$ q/ x$ ?7 C- F! }9 l7 G8 S1 Z2 j: \4 O3 P5 J: z
9 u& ]$ n2 q+ _$ p
配置完成qt-creator
1 V/ y# W, T: r+ Y/ `8 {0 Q
$ j! ], p7 w: ]5 {2 K9 b8 b. R新建了一个项目
4 V) y8 M, N7 H3 Z5 G5 g2 j, m调试发现,x86版本的 发布软件没问题
1 u  _8 N& {4 s[attach]2261[/attach]& p/ y) I: Y' U- a; d9 W
忽略到所有的,可以进入断点7 f8 F( A% M2 b
然后在发布arm版时$ {/ |0 l# |& V
[attach]2262[/attach]
+ c( Y3 J$ V+ m* k6 T: _$ Z( P& j8 |2 V
然后我就醉了$ R6 S$ p7 _+ g) N8 s$ [$ U4 U

  \) C- ~, a& M9 n2 E4 k后来,我又装了一个ubuntu16.04的32位系统9 j. \; ?- ^4 M: S% A6 P3 n/ _# _
出来的效果也跟以上的结果一样4 ^- R9 v8 @8 r7 U2 Q
sudo apt-get install libxtst-dev
$ I7 t& i( }8 ]echo -e "o\nyes" | ./configure -prefix /home/arm/qtlib/qt-x86-4.8.3  -no-gtkstyle$ a5 f' ]* W! D
make -j8 && make install  o2 s1 b( s3 T
5 D4 ?4 o" w0 J1 g2 I
cp -a mkspecs/qws/linux-arm-g++/ mkspecs/qws/linux-omapl138-g++ 8 a0 r& `% @' a% E  l. ?% d! C! e% V2 D
sed -i "s/arm-linux/arm-none-linux-gnueabi/g" mkspecs/qws/linux-omapl138-g++/qmake.conf
2 [! X* }+ l, X+ c2 Q8 Aecho -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& [) d: V7 \# b. v/ _+ o: L3 t
make -j8 && make install+ G$ z4 w% z7 B

- ~0 |2 e( Z3 ~% O. B4 c% v5 X1 Q. y1 B" _

4 g3 H6 m9 H( S' J+ L( D) y( L! w. n, o
3 W" M8 y7 e1 s# U

作者: human    时间: 2017-4-30 21:12
加sudo操作看看
作者: tumi    时间: 2017-5-1 08:02
human 发表于 2017-4-30 21:12! O3 W5 K0 b! B0 t& g3 ]+ g
加sudo操作看看
- p" A/ _: d. v" q6 i
你的意思是把库的编译工作,用管理员身份来搞嘛?我对arm库,搞过了。依然是同样的问题
% @) R. I/ J% T2 d* M" \$ c
作者: tumi    时间: 2017-5-1 08:02
tumi 发表于 2017-5-1 08:02
8 F$ J  w6 y, ?. X. _& c你的意思是把库的编译工作,用管理员身份来搞嘛?
" P, _* ^3 d" A8 R
我对arm库,搞过了。依然是同样的问题
作者: tenny    时间: 2017-5-2 08:36
mcsdk  里面有编译好的 Qt 库,直接使用即可,不需要自己再编译 Qt 库,参考使用文档
作者: tumi    时间: 2017-5-2 09:28
tenny 发表于 2017-5-2 08:36
$ P  ~- ^! f( I' B5 ?9 qmcsdk  里面有编译好的 Qt 库,直接使用即可,不需要自己再编译 Qt 库,参考使用文档 ...

! g! J! W7 F" A7 ^+ w找了好久好久,都没有找到,望指点
作者: tenny    时间: 2017-5-15 13:40
请致电技术支持




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