• 6440阅读
  • 1回复

qt程序部署问题 [复制链接]

上一主题 下一主题
离线dream_island
 
只看楼主 倒序阅读 楼主  发表于: 2009-06-24
在redhat-5 下根据qt文档动态编译的简单界面程序,拷贝到另一台机器上后利用ldd查看时报not a dynamic excutable,执行直接 floating point exception

请问是什么原因,qt到底应该如何部署呢?
纯新手,盼望指教!!
离线dream_island
只看该作者 1楼 发表于: 2009-06-24
先把整个过程介绍下
介绍下整个过程
1、环境
  QMake version 2.01a ;Using Qt version 4.4.3 in /usr/local/Trolltech/Qt-4.4.3/lib
  Linux version 2.6.18-8.el5 (brewbuilder@ls20-bc2-14.build.redhat.com) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #1 SMP Fri Jan 26 14:15:21 EST 2007
2、代码
  timetool.cpp timetool.h timetool.ui
3、编译过程(qt为默认安装,动态库模式)
  qmake -projcet
  qmake -config release
  make
4、查看dependencies
  ldd ./dialog_qt
  结果:
        linux-gate.so.1 =>  (0x002c1000)
        libQtGui.so.4 => /usr/local/Trolltech/Qt-4.4.3/lib/libQtGui.so.4 (0x005f7000)
        libpng12.so.0 => /usr/lib/libpng12.so.0 (0x49452000)
        libSM.so.6 => /usr/lib/libSM.so.6 (0x494e3000)
        libICE.so.6 => /usr/lib/libICE.so.6 (0x494c7000)
        libXi.so.6 => /usr/lib/libXi.so.6 (0x4990f000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0x4949e000)
        libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x494b0000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x4937c000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x493fe000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0x4926f000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0x49162000)
        libQtCore.so.4 => /usr/local/Trolltech/Qt-4.4.3/lib/libQtCore.so.4 (0x002c2000)
        libz.so.1 => /usr/lib/libz.so.1 (0x49148000)
        libgthread-2.0.so.0 => /lib/libgthread-2.0.so.0 (0x49ab2000)
        libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x49512000)
        librt.so.1 => /lib/librt.so.1 (0x494ee000)
        libdl.so.2 => /lib/libdl.so.2 (0x49129000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x4912f000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x4928f000)
        libm.so.6 => /lib/libm.so.6 (0x49100000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x49281000)
        libc.so.6 => /lib/libc.so.6 (0x48fc1000)
        libexpat.so.0 => /lib/libexpat.so.0 (0x4942f000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0x4915d000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x49267000)
        /lib/ld-linux.so.2 (0x48fa4000)
5、部署准备
  按照qt文档中“deploying an application on x11 platforms”中“Creating the Application Package”的第三种方法部署目录结构,结构如下:
  dialog_qt(可执行程序)
  dialog_qt.sh(,直接复制的qt文档中的脚本)
  libQtCore.so.4
  libQtGui.so.4
  ...(all the dependencies required above)
6、部署
  将以上目录结构直接tar,然后部署到以下环境
  Linux version 2.6.9-42.0.3.ELsmp (brewbuilder@hs20-bc1-7.build.redhat.com) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-3)) #1 SMP Mon Sep 25 17:28:02 EDT 2006

=============================================================================
7、出现问题
  启动./dialog_qt.sh报错:14990 Floating point exception$dirname/$appname $*
  启动./dialog 报错: Floating point exception
  ldd ./dialog 报错: Not a dynamic executable
  file ./dialog 提示:ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), not stripped

刚刚学习qt,尝试部署出现问题,百思不得其解,盼望能有高手解答!!!!
快速回复
限100 字节
 
上一个 下一个