首页| 论坛| 消息

标题:立宇泰的开发板armsys2440在qt_arm环境下make 错误求救?
作者:zbzharp
日期:2008-07-13 23:21
内容:

紧急求助,我买了一块立宇泰的开发板armsys2440,用qt编了一个小程序在arm环境下make 出错:
# make gcc -o cam cam.o main.o moc_cam.o -L/armsys2440/qt_arm/qt/lib -lqte /usr/bin/ld: skipping incompatible /armsys2440/qt_arm/qt/lib/libqte.so when searching for -lqte /usr/bin/ld: cannot find -lqte collect2: ld returned 1 exit status make: *** Error 1 #
注:在此qt_arm环境下 make 立宇泰自带的"HELLO world"没问题,生成了可执行程序。
哪位大哥帮忙确定一下 是什么原因造成的!!!    不甚感激!!!


#1 [youngst 07-14 12:25]
makefile的问题吧。arm环境怎么是gcc和ld呢?
#2 [zuogenyu 07-14 16:13]
echo $PATH
echo $LD_LIBRARY_PATH
echo $TMAKEPATH
看看这几个有没,如果没有加上.
ld: cannot find -lqte 就是说没有找到qt的库.
#3 [zbzharp 07-17 00:09]
谢谢 youngst 和 zuogenyu 的关注,
1、首先要对zuogenyu 说,qt-arm的环境已经设置了内容如下:
export QTDIR=$PWD/qt
export QPEDIR=$PWD/qtopia
export TMAKEDIR=$PWD/tmake
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-generic-g++
export PATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/lib:/usr/lib/qt-3.1/lib:$LD_LIBRARY_PATH
应该不是环境设置问题。
2、对于youngst所说,我也有怀疑,但是为啥在此环境“hello world”可以编译通过?我的ARM环境建立是用他们提供的./budildarm 批处理命令安装配置的,我看了一下它的内容为:
#!/bin/bash
tar xfvz tmake-1.11.tar.gz
tar xfvz qt-embedded-2.3.7.tar.gz
tar xfvz qtopia-free-1.7.0.tar.gz
tar xfvz qt-x11-2.3.2.tar.gz
mv tmake-1.11 tmake
mv qt-2.3.7/ qt
mv qtopia-free-1.7.0 qtopia
mv qt-2.3.2 qt-x11
cd qt-x11
export QTDIR=$PWD
echo yes | ./configure -static -no-xft -no-opengl -no-sm
make -C src/moc
cp src/moc/moc bin
make -C src
make -C tools/designer
make -C tools/qvfb
cp tools/qvfb/qvfb bin
strip bin/uic bin/moc bin/designer bin/qvfb
cd ..
cp qt-x11/bin/?* qt/bin
rm -fr qt-x11
export QTDIR=$PWD/qt
export QPEDIR=$PWD/qtopia
export TMAKEDIR=$PWD/tmake
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export PATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATH
cd qt
make clean
cp ../qtopia/src/qt/qconfig-qpe.h src/tools/
(echo yes ; echo no) | ./configure -platform linux-arm-g++ -qconfig qpe -depths 16,24,32
make -C src
cd ..
cd qtopia/src
./configure -platform linux-arm-g++
make
哎可惜我这方面水平太差,看不大懂。
另外附上我在另外一台机子在此环境下程序的Makefile文件的内容和出错信息,希望大家能一起研究研究:
出错信息:
# make
gcc -o cam -L/armsys2440/qt_arm/qt/lib -lqte
/usr/bin/ld: cannot find -lqte
collect2: ld returned 1 exit status
make: *** Error 1
Makefile文件:
#############################################################################
# Makefile for building cam
# Generated by tmake at 23:57, 2008/07/16
# Project: cam
# ..
#4 [高兴就好 07-17 07:40]
楼主编译完成的程序是想跑在X86的机器上还是ARM的机器上?
如果是X86的机器
那么生成Makefile的时候要用qmake命令
如果是ARM的机器
那么生成Makefile的时候要用tmake命令
看你Makefile文件中的CC、CXX和LINK的内容,是要在X86的机器上运行,因为不是交叉编译
但LIBS里面的-lqte是在ARM上运行的库文件
请楼主核实一下情况
/usr/bin/ld: cannot find -lqte 这种情况我遇到过很多次
我感觉我能帮你解决
我先了解一下情况
希望不要见怪
#5 [zbzharp 07-17 16:00]
谢谢 热心的高兴就好!!!
我需要的是运行在ARM上的程序,我用的是tmake -o Makefile cam.pro.
tmake和qmake仅是生成Makefile的工具,他们的区别与X86和arm无关,
详见:http://www.qtcn.org/bbs/read.php?tid=3086
我觉得问题还在环境的设置,设置了X86的环境,不管用什么生成Makefile,make之后就生成X86下的程序,ARM同理.
关键是那个./budildarm 批处理文件,我看不大懂,请看自带的"hello world"的ARM环境下通过的Makefile:
############################################################################
# Automatically generated from /friendly-arm/gui/free-qtopia-arm/hello/Makefile.in
# Build options from
#############################################################################
default: all #
CONTROL =
# Compiling
INTERFACE_DECL_PATH = .
SYSCONF_CXX = arm-linux-g++
SYSCONF_CC = arm-linux-gcc
DASHCROSS = -arm
# Compiling with support libraries
SYSCONF_CXXFLAGS_X11 =
SYSCONF_CXXFLAGS_QT = -I$(QTDIR)/include
SYSCONF_CXXFLAGS_QTOPIA = -I$(QPEDIR)/include
SYSCONF_CFLAGS_QTOPIA = -I$(QPEDIR)/include
SYSCONF_CXXFLAGS_OPENGL = -I/usr/X11R6/include
# Compiling YACC output
SYSCONF_CXXFLAGS_YACC = -Wno-unused -Wno-parentheses
# Linking with support libraries
SYSCONF_RPATH_X11 =
SYSCONF_RPATH_QT = -Wl,-rpath,$(QTDIR)/lib
SYSCONF_RPATH_QTOPIA = -Wl,-rpath,$(QPEDIR)/lib
SYSCONF_RPATH_OPENGL = -Wl,-rpath,/usr/X11R6/lib
# Linking with support libraries
# X11
SYSCONF_LFLAGS_X11 =
SYSCONF_LIBS_X11 =
# Qt, Qt+OpenGL
SYSCONF_LFLAGS_QT = -L$(QTDIR)/lib
SYSCONF_LFLAGS_QTOPIA = -L$(QPEDIR)/lib
SYSCONF_LIBS_QT = -lqte$(QT_THREAD_SUFFIX)
SYSCONF_LIBS_QT_OPENGL =
SYSCONF_LIBS_QTOPIA = -lqtopia
# OpenGL
SYSCONF_LFLAGS_OPENGL = -L/usr/X11R6/lib
SYSCONF_ ..

<< 1 2 >> (1/2)

回复 发表
主题 版块