• 8755阅读
  • 1回复

[提问]qt-embedded-linux-opensource-src-4.7.0和tslib1.4的安装出错!(已解决) [复制链接]

上一主题 下一主题
离线tangquanming
 
只看楼主 倒序阅读 楼主  发表于: 2011-02-26
系统版本:RedHat5
QT版本:qt-embedded-linux-opensource-src-4.7.0
Tslib:tslib-1.4
qt-embedded-linux-opensource-src-4.7.0  PC版已经安装成功,并可以正常使用。
编译qt-embedded-linux-opensource-src-4.7.0  ARM版时出现以下错误提示:

-L/usr/local/tslib-1.4/lib -L/home/work/qt/qt-4.7.0-arm/lib -lQtNetwork -L/usr/local/tslib-1.4/lib -L/home/work/qt/qt-4.7.0-arm/lib -lQtCore -lpthread -lts
/usr/local/tslib-1.4/lib/libts.a(ts_load_module.o): In function `__ts_load_module':
ts_load_module.c:(.text+0x80): undefined reference to `dlopen'
ts_load_module.c:(.text+0x90): undefined reference to `dlsym'
ts_load_module.c:(.text+0xf0): undefined reference to `dlclose'
ts_load_module.c:(.text+0x120): undefined reference to `dlclose'
collect2: ld returned 1 exit status
gmake[1]: *** [../../lib/libQtGui.so.4.7.0] 错误 1
gmake[1]: Leaving directory `/home/work/qt/qt-4.7.0-arm/src/gui'
gmake: *** [sub-gui-make_default-ordered] 错误 2

我用的是redhat5,tslib-1.4安装步骤如下,但是运行./configure 没有输出信息提示,编译也能正常通过:
#>echo "ac_cv_func_malloc_0_nonnull=yes" > tslib/arm-linux.autogen
//为了防止出现undefined reference to `rpl_malloc' 错误
#>CONFIG_SITE=arm-linux.autogen ./configure CC=arm-linux-gcc CXX=arm-linux-g++  --prefix=/usr/local/tslib-1.4 --host=arm-linux
make
make install

qt-embedded-linux-opensource-src-4.7.0编译过程如:
#>./configure -prefix /usr/local/Trolltech/QtEmbedded-4.7.0-arm  \
-opensource \
-confirm-license \
-release -shared \
-embedded arm \
-xplatform qws/linux-arm-g++ \
-depths 16,18,24 \
-fast \
-optimized-qmake \
-pch \
-qt-sql-sqlite \
-qt-libjpeg \
-qt-zlib \
-qt-libpng \
-qt-freetype \
-little-endian -host-little-endian \
-no-qt3support \
-no-libtiff -no-libmng \
-no-opengl \
-no-mmx -no-sse -no-sse2 \
-no-3dnow \
-no-openssl \
-no-webkit \
-no-qvfb \
-no-phonon \
-no-nis \
-no-opengl \
-no-cups \
-no-glib \
-no-xcursor -no-xfixes -no-xrandr -no-xrender \
-no-separate-debug-info \
-nomake examples -nomake tools -nomake docs \
-qt-mouse-tslib -I/usr/local/tslib-1.4/include -L/usr/local/tslib-1.4/lib
#>gmake

-L/usr/local/tslib-1.4/lib -L/home/work/qt/qt-4.7.0-arm/lib -lQtNetwork -L/usr/local/tslib-1.4/lib -L/home/work/qt/qt-4.7.0-arm/lib -lQtCore -lpthread -lts
/usr/local/tslib-1.4/lib/libts.a(ts_load_module.o): In function `__ts_load_module':
ts_load_module.c:(.text+0x80): undefined reference to `dlopen'
ts_load_module.c:(.text+0x90): undefined reference to `dlsym'
ts_load_module.c:(.text+0xf0): undefined reference to `dlclose'
ts_load_module.c:(.text+0x120): undefined reference to `dlclose'
collect2: ld returned 1 exit status
gmake[1]: *** [../../lib/libQtGui.so.4.7.0] 错误 1
gmake[1]: Leaving directory `/home/work/qt/qt-4.7.0-arm/src/gui'
gmake: *** [sub-gui-make_default-ordered] 错误 2

在网上找了很久也没找到解决办法,请高手指点一下!

[ 此帖被tangquanming在2011-02-27 20:08重新编辑 ]
离线tangquanming
只看该作者 1楼 发表于: 2011-02-27
终于在网上找到了一个解决办法:
修改./src/gui/Makefile
...
LIBS          = $(SUBLIBS)  -L/usr/local/tslib-1.4/lib -L/home/work/qt/qt-4.7.0-arm/lib -lQtNetwork -L/usr/local/tslib-1.4/lib -L/home/work/qt/qt-4.7.0-arm/lib -lQtCore -lpthread -lts
...

在末尾添加库libdl库,这个库用于动态连接库的操作:
...
LIBS          = $(SUBLIBS)  -L/usr/local/tslib-1.4/lib -L/home/work/qt/qt-4.7.0-arm/lib -lQtNetwork -L/usr/local/tslib-1.4/lib -L/home/work/qt/qt-4.7.0-arm/lib -lQtCore -lpthread -lts -ldl

快速回复
限100 字节
 
上一个 下一个