主题 : error while loading shared libraries: libqte.so.2(原帖:qt2.2.0编译的时候出现的问题) 复制链接 | 浏览器收藏 | 打印
从此生活在arm9home的世界中
级别: 新手上路
UID: 10620
精华: 0
发帖: 23
金钱: 225 两
威望: 111 点
综合积分: 46 分
注册时间: 2009-11-10
最后登录: 2010-01-27
楼主  发表于: 2009-11-22 21:31

 error while loading shared libraries: libqte.so.2(原帖:qt2.2.0编译的时候出现的问题)

我在利用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重新编辑 ]
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2009-11-23 10:54
error while loading shared libraries

这是runtime时找不到动态共享库造成的,和编译环境无关。
如果libqte.so.2的确存在于你的QTDIR目录下的话,你可以把这个路径加到环境变量LD_LIBRARY_PATH中
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
从此生活在arm9home的世界中
级别: 新手上路
UID: 10620
精华: 0
发帖: 23
金钱: 225 两
威望: 111 点
综合积分: 46 分
注册时间: 2009-11-10
最后登录: 2010-01-27
2楼  发表于: 2009-11-23 18:54

 回 1楼(kasim) 的帖子

O(∩_∩)O谢谢版主,我想问问斑竹,在QT里面,QTE和QPE是什么呀?我只在库里找到过他们的库。但是有什么用我不太了解。在下面的路径设置都是分别是什么作用呢?我初学QT,对路径很不清楚。麻烦版主了   
#cd qt_x86

1. 设置环境变量
export QT2DIR=$PWD/qt-2.3.2
export QTDIR=$QT2DIR
export QTEDIR=$PWD/qt-2.3.10-target
export QPEDIR=$PWD/qtopia-2.1.1-target
export TMAKEDIR=$PWD/tmake-1.13
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:$LD_LIBRARY_PATH