查看完整版本: [-- QT4.5.3编译的程序,在开发板上运行不报错,也没任何消息或界面显示? --]

QTCN开发网 -> Qt嵌入式开发 -> QT4.5.3编译的程序,在开发板上运行不报错,也没任何消息或界面显示? [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

haozw 2016-11-23 19:17

QT4.5.3编译的程序,在开发板上运行不报错,也没任何消息或界面显示?

qt程序在开发板上运行即不报错,也没任何消息或界面显示。
麻烦高人帮忙看下,谢谢了。
1、直接用gcc编译的的helloWorld程序就能正常在串口打印出来,但是,用qt编译的就不行。
   (交叉编译的GCC为gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux.tar.bz2)
2、两个用QT4.5.3编译(交叉编译环境的gcc和上边一样)的程序,一个是hello2,就是一个最简单的helloWorld程序。另一个myTest4是一个测试程序,稍微复杂点。
   运行这两个QT编译的程序都是一敲命令就立刻返回了。也没有报错什么的。
(具体的qt版本是qt-embedded-linux-opensource-src-4.5.3.tar.gz)
运行的现象如下:
# ./hello2
# ./hello2 -qws
# ./myTest4
# ./myTest4 -qws
敲完回车就立刻返回了,ps里也没有进程了,串口和触摸屏上都没有任何反应。

arm版linux是:
# uname -a
Linux buildroot 3.10.0 #152 Sun Aug 14 22:03:30 CST 2016 armv7l GNU/Linux

# ps -ef
PID   USER     COMMAND
    1 root     init
    2 root     [kthreadd]
    3 root     [ksoftirqd/0]
    4 root     [kworker/0:0]
    5 root     [kworker/0:0H]
    7 root     [khelper]
    8 root     [kdevtmpfs]
    9 root     [kworker/u2:1]
  222 root     [writeback]
  224 root     [bioset]
  225 root     [kblockd]
  254 root     [khubd]
  288 root     [cfg80211]
  289 root     [kworker/0:1]
  371 root     [rpciod]
  376 root     [kswapd0]
  377 root     [fsnotify_mark]
  378 root     [nfsiod]
  379 root     [crypto]
  590 root     [irq/48-SiI902x_]
  608 root     [deferwq]
  613 root     [ubi_bgt0d]
  622 root     [kworker/u2:2]
  627 root     [ubifs_bgt0_0]
  635 root     /sbin/syslogd -m 0
  637 root     /sbin/klogd
  642 root     [mmcqd/0]
  645 daemon   portmap
  672 root     /usr/sbin/sshd
  680 root     -sh
  727 root     ps -ef

# env
HISTFILESIZE=1000
INPUTRC=/etc/inputrc
TSLIB_TSDEVICE=/dev/input/event0
USER=root
HOSTNAME=buildroot
LD_LIBRARY_PATH=/usr/local/tslib/lib:/usr/local/qt4.5.3/lib:/lib:
OLDPWD=/root
HOME=/root
QTDIR=/usr/local/qt4.5.3
PAGER=/bin/more
TSLIB_FBDEVICE=/dev/fb0
PS1=#
TSLIB_PLUGINDIR=/usr/local/tslib/lib/ts
T_ROOT=/usr/local/tslib
TSLIB_CONSOLEDEVICE=none
LOGNAME=root
QT_QWS_FONTDIR=/usr/local/qt4.5.3/lib/fonts
TERM=vt100
PATH=/usr/local/tslib/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/local/bin
TSLIB_CONFFILE=/usr/local/tslib/etc/ts.conf
DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
HISTSIZE=1000
SHELL=/bin/sh
PWD=/mnt/sd
QWS_MOUSE_PROTO=Tslib:/dev/input/event0
TSLIB_CALIBFILE=/etc/pointercal
EDITOR=/bin/vi

两个程序各自需要的库如下,看起来都是齐全的。
# ldd ./hello2
checking sub-depends for '/usr/local/tslib/lib/libts--export-dynamic.so.0'
checking sub-depends for '/usr/local/qt4.5.3/lib/libQtGui.so.4'
checking sub-depends for '/usr/local/qt4.5.3/lib/libQtNetwork.so.4'
checking sub-depends for '/usr/local/qt4.5.3/lib/libQtCore.so.4'
checking sub-depends for '/lib/librt.so.1'
checking sub-depends for '/lib/libdl.so.2'
        libc.so.6 => /lib/libc.so.6 (0xb6ef0000)
        /lib/ld-linux-armhf.so.3 (0xb6fd2000)
checking sub-depends for '/lib/libpthread.so.0'
checking sub-depends for '/usr/lib/libstdc++.so.6'
checking sub-depends for '/lib/libm.so.6'
        /lib/ld-linux-armhf.so.3 (0xb6f18000)
        libc.so.6 => /lib/libc.so.6 (0xb6e36000)
checking sub-depends for '/lib/libgcc_s.so.1'
checking sub-depends for '/lib/libc.so.6'
        /lib/ld-linux-armhf.so.3 (0xb6e46000)
checking sub-depends for '/lib/libm.so.0'
        libc.so.0 => /lib/libc.so.0 (0xb6f57000)
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0xb6fba000)
checking sub-depends for '/lib/libc.so.0'
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0xb6f95000)
        libts--export-dynamic.so.0 => /usr/local/tslib/lib/libts--export-dynamic.so.0 (0x00000000)
        libQtGui.so.4 => /usr/local/qt4.5.3/lib/libQtGui.so.4 (0x00000000)
        libQtNetwork.so.4 => /usr/local/qt4.5.3/lib/libQtNetwork.so.4 (0x00000000)
        libQtCore.so.4 => /usr/local/qt4.5.3/lib/libQtCore.so.4 (0x00000000)
        librt.so.1 => /lib/librt.so.1 (0x00000000)
        libdl.so.2 => /lib/libdl.so.2 (0x00000000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00000000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00000000)
        libm.so.6 => /lib/libm.so.6 (0x00000000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00000000)
        libc.so.6 => /lib/libc.so.6 (0x00000000)
        libm.so.0 => /lib/libm.so.0 (0x00000000)
        libc.so.0 => /lib/libc.so.0 (0x00000000)
        /lib/ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x00000000)

# ldd ./myTest4
checking sub-depends for '/usr/local/tslib/lib/libts--export-dynamic.so.0'
checking sub-depends for '/usr/local/qt4.5.3/lib/libQtGui.so.4'
checking sub-depends for '/usr/local/qt4.5.3/lib/libQtNetwork.so.4'
checking sub-depends for '/usr/local/qt4.5.3/lib/libQtCore.so.4'
checking sub-depends for '/lib/librt.so.1'
checking sub-depends for '/lib/libdl.so.2'
        libc.so.6 => /lib/libc.so.6 (0xb6efc000)
        /lib/ld-linux-armhf.so.3 (0xb6fde000)
checking sub-depends for '/lib/libpthread.so.0'
checking sub-depends for '/usr/lib/libstdc++.so.6'
checking sub-depends for '/lib/libm.so.6'
        /lib/ld-linux-armhf.so.3 (0xb6f42000)
        libc.so.6 => /lib/libc.so.6 (0xb6e60000)
checking sub-depends for '/lib/libgcc_s.so.1'
checking sub-depends for '/lib/libc.so.6'
        /lib/ld-linux-armhf.so.3 (0xb6ee1000)
checking sub-depends for '/lib/libm.so.0'
        libc.so.0 => /lib/libc.so.0 (0xb6f50000)
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0xb6fb3000)
checking sub-depends for '/lib/libc.so.0'
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0xb6f5b000)
        libts--export-dynamic.so.0 => /usr/local/tslib/lib/libts--export-dynamic.so.0 (0x00000000)
        libQtGui.so.4 => /usr/local/qt4.5.3/lib/libQtGui.so.4 (0x00000000)
        libQtNetwork.so.4 => /usr/local/qt4.5.3/lib/libQtNetwork.so.4 (0x00000000)
        libQtCore.so.4 => /usr/local/qt4.5.3/lib/libQtCore.so.4 (0x00000000)
        librt.so.1 => /lib/librt.so.1 (0x00000000)
        libdl.so.2 => /lib/libdl.so.2 (0x00000000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00000000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00000000)
        libm.so.6 => /lib/libm.so.6 (0x00000000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00000000)
        libc.so.6 => /lib/libc.so.6 (0x00000000)
        libm.so.0 => /lib/libm.so.0 (0x00000000)
        libc.so.0 => /lib/libc.so.0 (0x00000000)
        /lib/ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x00000000)


在debug模式下,用qDebug也无法输出东西。
初学QT,请高手们指点下

uidab 2016-11-24 09:51
chmod权限是否设置为可执行??
如果是的话。
你在main.cpp里面加上qDebug() 输出,如果也没有的话,初步判定是缺少so库。

另外配置一下QtCreator的remote debug。这样便于调试。




haozw 2016-11-30 09:03
uidab:chmod权限是否设置为可执行??
如果是的话。
你在main.cpp里面加上qDebug() 输出,如果也没有的话,初步判定是缺少so库。
另外配置一下QtCreator的remote debug。这样便于调试。
....... (2016-11-24 09:51) 

谢谢版主回答。
直接用qDebug也是没有输出。程序权限是有的。
如果说缺so库的话,我用ldd和 arm-linux-gnueabihf-readelf看,
里边出现的so都加入到LD_LIBRARY_PATH位置里了的。
还可能是什么原因啦?

uidab 2016-12-01 08:00
haozw:谢谢版主回答。
直接用qDebug也是没有输出。程序权限是有的。
如果说缺so库的话,我用ldd和 arm-linux-gnueabihf-readelf看,
里边出现的so都加入到LD_LIBRARY_PATH位置里了的。
....... (2016-11-30 09:03)

也有可能是so路径问题,也就是说你的程序没有去设置的路径里面找,你可以把so放到linux默认的路径下试试。

或者你写个最简单的程序测试。


查看完整版本: [-- QT4.5.3编译的程序,在开发板上运行不报错,也没任何消息或界面显示? --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled