• 10824阅读
  • 6回复

用arm-linux-g++编译QTE程序的问题 [复制链接]

上一主题 下一主题
离线xinjiren
 
只看楼主 倒序阅读 楼主  发表于: 2007-01-24
我的QTE环境已经搭建起来了,用的是3.3.6版本,用qmake生成makefile后编译生成目标文件可以在PC机上执行QTE程序,但是如何将这个程序下载到板子上运行呢?我修改makefile里的gcc和g++为arm-linux-g++、arm-linux-gcc,准备重新编译生成目标文件下到板子上运行,但是编译的时候出错,提示cannont find -lqte,请问这个什么原因造成的呢?
makefile如下所示:
#############################################################################
# Makefile for building: hello
# Generated by qmake (1.07a) (Qt 3.3.6) on: Wed Jan 24 09:17:56 2007
# Project: hello.pro
# Template: app
# Command: $(QMAKE) -o makefile hello.pro
#############################################################################

####### Compiler, tools and options

CC     = gcc   改成arm-linux-gcc
CXX     = g++        改成arm-linux-g++
LEX     = flex
YACC   = yacc
CFLAGS   = -pipe -Wall -W -O2 -DQT_NO_DEBUG -DQT_SHARED
CXXFLAGS = -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -DQT_NO_DEBUG -DQT_SHARED
LEXFLAGS =
YACCFLAGS= -d
INCPATH = -I/yctek/x86-qtopia/qte/mkspecs/default -I. -I$(QTDIR)/include
LINK   = g++   改成arm-linux-g++
LFLAGS   = -Wl,-rpath,$(QTDIR)/lib
LIBS   = $(SUBLIBS) -L$(QTDIR)/lib -lqte
AR     = ar cqs 改成arm-linux-ar
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
CHK_DIR_EXISTS= test -d
MKDIR   = mkdir -p

####### Output directory

OBJECTS_DIR = ./

####### Files

HEADERS = hello.h
SOURCES = hello.cpp \
       main.cpp
OBJECTS = hello.o \
       main.o
FORMS =
UICDECLS =
UICIMPLS =
SRCMOC   = moc_hello.cpp
OBJMOC = moc_hello.o
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 $@ $<

.cc.o:
   $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.cxx.o:
   $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.C.o:
   $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.c.o:
   $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

####### 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 /yctek/x86-qtopia/qte/mkspecs/default/qmake.conf /yctek/x86-qtopia/qte/lib/libqte.prl
   $(QMAKE) -o makefile hello.pro
qmake:
   @$(QMAKE) -o makefile hello.pro

dist:
   @mkdir -p .tmp/hello && $(COPY_FILE) --parents $(SOURCES) $(HEADERS) $(FORMS) $(DIST) .tmp/hello/ && ( cd `dirname .tmp/hello` && $(TAR) hello.tar hello && $(GZIP) hello.tar ) && $(MOVE) `dirname .tmp/hello`/hello.tar.gz . && $(DEL_FILE) -r .tmp/hello

mocclean:
   -$(DEL_FILE) $(OBJMOC)
   -$(DEL_FILE) $(SRCMOC)

uiclean:

yaccclean:
lexclean:
clean: mocclean
   -$(DEL_FILE) $(OBJECTS)
   -$(DEL_FILE) *~ core *.core


####### Sub-libraries

distclean: clean
   -$(DEL_FILE) $(TARGET) $(TARGET)


FORCE:

####### Compile

hello.o: hello.cpp hello.h

main.o: main.cpp hello.h

moc_hello.o: moc_hello.cpp hello.h

moc_hello.cpp: $(MOC) hello.h
   $(MOC) hello.h -o moc_hello.cpp

####### Install

install:

uninstall:
离线shiroki

只看该作者 1楼 发表于: 2007-01-30
检查你的QTDIR/lib下有libqte.so这个库吗? 是不是你的qte库编译成mt的了?
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线honest581
只看该作者 2楼 发表于: 2007-06-08
有这个库但编译时候提示undefined reference: to QWidget.(QWidget,const char...................
离线littlexiong
只看该作者 3楼 发表于: 2007-06-09
是在fc6上安装的吗?
是不是不支持多线程
估计是./configure 后面要加上-thread
离线backup
只看该作者 4楼 发表于: 2007-08-18
$(QTEDIR)设置了么?
离线天行健
只看该作者 5楼 发表于: 2007-09-04
我估计是环境变量的问题。
离线lovesheep
只看该作者 6楼 发表于: 2008-04-24
这个是因为LD_LIBRARY_PATH变量没有设置。
快速回复
限100 字节
 
上一个 下一个