QT项目中的符号查找错误问题

时间:2011-06-07 19:17:38

标签: c++ qt linker undefined-symbol

我正在尝试将新库添加到Qt插件文件夹中。

该插件位于此处: http://qt.gitorious.org/qt-solutions/qt-solutions/trees/master/qtjp2imageformat

它说它需要jasper来构建,所以我下载了jasper,并构建它,在我的jasper / lib文件夹中生成一个libjasper.a(在我的家庭目录中,而不是在/ usr或其他任何东西)

所以我使用jasper包含文件构建了qtjp2imageformat,并链接到该libjasper.a文件

以下是makefile中的相关行:

INCPATH       = -I/usr/lib64/qt4/mkspecs/linux-g++-64 -I. -I/usr/lib64/qt4/include/QtCore -I/usr/lib64/qt4/include/QtGui -I/usr/lib64/qt4/include -I../src -I. -I/home/dcole/software/jasper-1.900.1/include
LIBS          = $(SUBLIBS)  -L/usr/lib64/qt4/lib64 -L/home/dcole/software/jasper-1.900.1/lib -ljasper -lQtGui -L/usr/lib64/mysql -L/usr/lib64/qt4/lib64 -L/usr/X11R6/lib64 -lQtCore -lpthread 

然后我将生成的libqtjp2.so放在QT Plugins / imageformats文件夹中,现在当我的代码运行,并进入它将要读取jpeg2000的部分时,我得到以下内容:symbol lookup error: /usr/lib64/qt4/plugins/imageformats/libqtjp2.so: undefined symbol: jas_init < / p>

所以我认为jas_init来自碧玉 - 我的QT项目怎么会看不到呢?我是否还需要针对libjasper.a创建MY项目链接,或者在构建libqtjp2时是否将库链接错误?

由于

1 个答案:

答案 0 :(得分:0)

你没有说你正在使用哪个发行版,但最简单的是安装jasper包并将你的应用程序链接到它的库。

顺便说一句,你是建立静态库(.a)还是动态(.so)?尝试构建动态库