我将qt-2.3.10移植到了ARM9内核,qte的动态库在/lib下为libqte-mt.so,我设置了环境变量为:LD_LIBRARY_PATH=/lib,然后我在我主机下用交叉编译工具arm-linux-g++编译一个应用软件helloworld,
编译成功,但我的helloworld在ARM板上运行出现segment error!
我的Makefile文件如下:
# Makefile for building: hello
# Generated by qmake (1.07a) (Qt 3.3.4) on: Thu Jul 27 10:53:11 2006
# Project: hello.pro
# Template: app
# Command: $(QMAKE) -o Makefile hello.pro
#############################################################################
####### Compiler, tools and options
CROSS =/usr/local/arm/3.4/bin/arm-linux-
QTDIR =/cirrus-arm-linux-1.0.7/qt-2.3.10
CC = arm-linux-gcc
CXX = arm-linux-g++
CFLAGS = -msoft-float -pipe $(CFLAGS_EXTRA) -Wall -W -O2 -D_REENTRANT -fPIC -DOPIE_NO_DEBUG -DUSE_REALTIME_AUDIO_THREAD -DUSE_FILE_NOTIFICATION -DOPIE_NEW_MALLOC -DOPIE_SOUND_FRAGMENT_SHIFT=14 -DQT_NO_DEBUG -DQT_THREAD_SUPPORT
CXXFLAGS = -msoft-float -pipe $(CFLAGS_EXTRA) -DQWS -fno-exceptions -fno-rtti $(CXXFLAGS_EXTRA) -Wall -W -O2 -D_REENTRANT -fPIC -DOPIE_NO_DEBUG -DUSE_REALTIME_AUDIO_THREAD -DUSE_FILE_NOTIFICATION -DOPIE_NEW_MALLOC -DOPIE_SOUND_FRAGMENT_SHIFT=14 -DQT_NO_DEBUG -DQT_THREAD_SUPPORT
LEXFLAGS =
YACCFLAGS= -d
INCPATH = -I. -I$(QTDIR)/include -I.moc/$(PLATFORM)/
LINK = arm-linux-g++
LFLAGS = $(LFLAGS_EXTRA) -Wl,-rpath-link,$(QTDIR)/lib -shared -Wl,-soname,-Wl,-rpath-link
LIBS = $(SUBLIBS) -L$(QTDIR)/lib $(LIBS_EXTRA) -lqte -lqte-mt -lpthread
AR = ar cqs
RANLIB =
MOC = $(QTDIR)/bin/moc
UIC = $(QTDIR)/bin/uic
QMAKE = qmake
TAR = tar -cf
GZIP = gzip -9f
COPY = cp -f
COPY_FILE= $(COPY)
COPY_DIR = $(COPY) -R
INSTALL_FILE= $(COPY_FILE)
INSTALL_DIR = $(COPY_DIR)
DEL_FILE = rm -f
SYMLINK = ln -sf
DEL_DIR = rmdir
MOVE = mv -f
PRO = networkapplet.pro
CHK_DIR_EXISTS= test -d
MKDIR = mkdir -p
####### Output directory
OBJECTS_DIR = .obj/
####### Files
HEADERS =
SOURCES = hello.cpp
OBJECTS = .obj/hello.o
FORMS =
UICDECLS =
UICIMPLS =
SRCMOC =
OBJMOC =
DIST = hello.pro
QMAKE_TARGET = hello
DESTDIR =
TARGET = hello
first: all
####### Implicit rules
.SUFFIXES: .c .o .cpp .cc .cxx .C
.cpp.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o -g $@ $<
.cc.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o -g $@ $<
.cxx.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o -g $@ $<
.C.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o -g $@ $<
.c.o:
$(CC) -c $(CFLAGS) $(INCPATH) -o -g $@ $<
####### Build rules
all: Makefile $(TARGET)
$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC)
$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(OBJCOMP) $(LIBS)
mocables: $(SRCMOC)
uicables: $(UICDECLS) $(UICIMPLS)
$(MOC):
( cd $(QTDIR)/src/moc && $(MAKE) )
Makefile: hello.pro /usr/lib/qt-3.3/mkspecs/default/qmake.conf /usr/lib/qt-3.3/lib/libqt-mt.prl
$(QMAKE) -o Makefile hello.pro
qmake:
@$(QMAKE) -o Makefile hello.pro
dist:
@mkdir -p .obj/hello && $(COPY_FILE) --parents $(SOURCES) $(HEADERS) $(FORMS) $(DIST) .obj/hello/ && ( cd `dirname .obj/hello` && $(TAR) hello.tar hello && $(GZIP) hello.tar ) && $(MOVE) `dirname .obj/hello`/hello.tar.gz . && $(DEL_FILE) -r .obj/hello
mocclean:
uiclean:
yaccclean:
lexclean:
clean:
-$(DEL_FILE) $(OBJECTS)
-$(DEL_FILE) *~ core *.core
####### Sub-libraries
distclean: clean
-$(DEL_FILE) $(TARGET) $(TARGET)
FORCE:
####### Compile
.obj/hello.o: hello.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o .obj/hello.o hello.cpp
####### Install
install:
uninstall:
[ 此贴被XChinux在2006-07-31 19:06重新编辑 ]