我在利用QT2编译文件的时候,出现了一下问题
./hello: error while loading shared libraries: libqte.so.2: cannot open shared object file: No such file or directory
我的makefile是
CC = gcc
CXX = g++
CFLAGS = -pipe -Wall -W -O2 -DNO_DEBUG
CXXFLAGS= -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -DNO_DEBUG
INCPATH = -I$(QTDIR)/include
LINK = g++
LFLAGS =
LIBS = $(SUBLIBS)
-L$(QTDIR)/lib -lqte -lm MOC = $(QTDIR)/bin/moc
UIC = $(QTDIR)/bin/uic
TAR = tar -cf
GZIP = gzip -9f
####### Files
HEADERS = hello.h
SOURCES = hello.cpp \
main.cpp
OBJECTS = hello.o \
main.o
INTERFACES =
UICDECLS =
UICIMPLS =
SRCMOC = moc_hello.cpp
OBJMOC = moc_hello.o
DIST =
TARGET = hello
INTERFACE_DECL_PATH = .
####### Implicit rules
.SUFFIXES: .cpp .cxx .cc .C .c
.cpp.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.cxx.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.cc.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.C.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.c.o:
$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
####### Build rules
all: $(TARGET)
$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC)
$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS)
moc: $(SRCMOC)
tmake: makefile
makefile: hello.pro
tmake hello.pro -o makefile
dist:
$(TAR) hello.tar hello.pro $(SOURCES) $(HEADERS) $(INTERFACES) $(DIST)
$(GZIP) hello.tar
clean:
-rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(UICIMPLS) $(UICDECLS) $(TARGET)
-rm -f *~ core
####### Sub-libraries
###### Combined headers
####### Compile
hello.o: hello.cpp \
hello.h
main.o: main.cpp \
hello.h
moc_hello.o: moc_hello.cpp \
hello.h
moc_hello.cpp: hello.h
$(MOC) hello.h -o moc_hello.cpp
我做过的改动有红色的部分:添加了-lm
还有就是对QTDIR的路径做了修改,修改如下
export QTDIR=/opt/FriendlyARM/mini2440/x86-qtopia/qtopia-2.2.0-FriendlyARM/qt2
之所以修改时因为我的Fedora9安装的时候自带QT3所以QTDIR的路粳认为了QT3的路径/usr/lib/qt-3.3
我用的是QT2.2.0
谁能帮帮啊。我是不是需要重新装一次Fedora9,选择不安装QT3?
[ 此帖被kasim在2009-11-23 10:56重新编辑 ]