读书人

dlopen(): ./libhello.so: undefined

发布时间: 2012-06-23 14:52:43 作者: rapoo

dlopen(): ./libhello.so: undefined symbol: _ZN10QTransformC1Ev ,这是什么错误?
要在Linux下做个共享库(libhello.so),在其他类里调用这个libhello.so库时,
出现了下面的错误:
dlopen(): ./libhello.so: undefined symbol: _ZN10QTransformC1Ev
这是什么错误?如何解决?谢谢!

下面是我写的Makefile文件:
#**** Makefile ****
CXX := g++

all: libhello.so bar

clean:

INCPATH =-I/usr/local/Trolltech/Qt-4.3.2/mkspecs/linux-g++ -I. -I/usr/local/Trolltech/Qt-4.3.2/include/QtCore -I/usr/local/Trolltech/Qt-4.3.2/include/QtCore -I/usr/local/Trolltech/Qt-4.3.2/include/QtGui -I/usr/local/Trolltech/Qt-4.3.2/include/QtGui -I/usr/local/Trolltech/Qt-4.3.2/include -I. -I.

test: all
LD_LIBRARY_PATH=.
./bar

libhello.so: hello.o
$(CXX) -Wl,-soname,$@ -shared -o $@ $^

bar: bar.o
$(CXX) -Wl,-E -o $@ $^ -ldl


bar.o:bar.cpp hello.h
$(CXX) -c -o bar.o bar.cpp $(INCPATH)

hello.o: hello.h
$(CXX) -c -o hello.o hello.cpp $(INCPATH)



[解决办法]
没加 LIBS

link 的时候要加 -lhello
[解决办法]

BatchFile code
CLIBS = -L/... -lhello #这里需要制定你的库的路径bar.o:bar.cpp hello.h $(CXX) -c -o bar.o bar.cpp $(INCPATH) $CLIBS 

读书人网 >UNIXLINUX

热点推荐