读书人

libQtCore.so.四 undefined symbol :g

发布时间: 2013-11-22 23:06:19 作者: rapoo

libQtCore.so.4 undefined symbol :g_main_context_push_thread_default

开发板终端执行qt程序


# ./qtDemo -qws


报错:


libQtCore.so.4 undefined symbol :g_main_context_push_thread_default


解决方案:

#cd /DVSDK/psp/linux-devkit/arm-none-linux-gnueabi/usr/lib


cp libglib-2.0.so.* /usr/lib(开发板)


报错:

libstdc++.so.6: version `CXXABI_ARM_1.3.3' not found

1、 网上下载/libstdc++.so.6

http://download.csdn.net/detail/DLUTXIE/3603187

2、拷贝到开发板


#cp libstdc++.so.6.0.13 /usr/lib


# ln -s /usr/lib/libstdc++.so.6.0.13 /usr/lib/libstdc++.so.6

备注:之前报的是libstdc++.so.6的相关信息,和这个解决方法大有略同。


推荐文章:

2012-05-09 10:47 107人阅读 评论(0) 收藏 举报

执行strings /usr/lib/libstdc++.so.6 | grep CXXABI_ARM_1.3.3
返回结果没有CXXABI_ARM_1.3.3


执行ls-l /usr/lib/libstdc++.so.6
发现/usr/lib/libstdc++.so.6 -> /usr/lib/libstdc++.so.6.0.8,

如果是GLIBCXX_3.4.9 需要使用libstdc++.so.6.0.10

如果是CXXABI_ARM_1.3.3 需要使用libstdc++.so.6.0.13

libstdc++.so.6.0.13下载地址:
http://download.csdn.net/detail/DLUTXIE/3603187
从网上下载这个文件,然后拔/usr/lib/libstdc++.so.6 -> /usr/lib/libstdc++.so.6.0.8软链接删除,

rm -rf libstdc++.so.6

重新做 ln -s /usr/lib/libstdc++.so.6.0.13 /usr/lib/libstdc++.so.6推荐文章:http://forum.teamspeak.com/archive/index.php/t-64876.html?s=b29a0b7fd78dd20eeefd17628ffd9285
I dont think so. I am using an KDE 3.5 with QT 3... not 4. Plus I examined the run script and it sets the library path but I forced it and it still fails

root@mrlinux:/opt/TeamSpeak3-Client-linux_x86# export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH
root@mrlinux:/opt/TeamSpeak3-Client-linux_x86# ./ts3client_runscript.sh
./ts3client_linux_x86: symbol lookup error: ./libQtCore.so.4: undefined symbol: g_main_context_push_thread_default
I figured out that TeamSpeak 3 now uses glibc but it is not included with TeamSpeak like the QT libraries are.

I got a recent Slackware glibc package and extracted
libgio-2.0.so.0
libglib-2.0.so.0
libgmodule-2.0.so.0
libgobject-2.0.so.0
libgthread-2.0.so.0
into my TeamSpeak client directory and it now works.
推荐文章:

I just installed QtSDK 1.2 on my redhat enterprise linux 5.6. While compiling a QT program, I got the following errors:

[root@stack example1]# makeg++ -m64 -Wl,-O1 -Wl,-rpath,/opt/QtSDK/Desktop/Qt/4.8.0/gcc/lib -o example1 fac1.o    -L/opt/QtSDK/Desktop/Qt/4.8.0/gcc/lib -lQtGui -lQtCore -lpthread /opt/QtSDK/Desktop/Qt/4.8.0/gcc/lib/libQtCore.so: undefined reference to `g_main_context_push_thread_default'/opt/QtSDK/Desktop/Qt/4.8.0/gcc/lib/libQtCore.so: undefined reference to `inotify_init1@GLIBC_2.9'/opt/QtSDK/Desktop/Qt/4.8.0/gcc/lib/libQtGui.so: undefined reference to `pipe2@GLIBC_2.9'/opt/QtSDK/Desktop/Qt/4.8.0/gcc/lib/libQtCore.so: undefined reference to `g_main_context_pop_thread_default'/opt/QtSDK/Desktop/Qt/4.8.0/gcc/lib/libQtGui.so: undefined reference to `FcFreeTypeQueryFace'/opt/QtSDK/Desktop/Qt/4.8.0/gcc/lib/libQtGui.so: undefined reference to `FT_Library_SetLcdFilter'/opt/QtSDK/Desktop/Qt/4.8.0/gcc/lib/libQtGui.so: undefined reference to `__longjmp_chk@GLIBC_2.11'collect2: ld returned 1 exit statusmake: *** [example1] Error 1[root@stack example1]#

It seems g++ compiler uses all correct options. Befor I installed QtSDK 1.2 on rhel 5.6, I had copied libstdc++.so.6.0.10 to /usr/lib64 and relinked libstdc++.so.6 to libstdc++.so.6.0.10, since QtSDK requires GLIBCXX_3.4.9 symbols in the libstdc++ library. I think this may be the source of the problem. But I'm not sure about that. So any advice? Thanks in advance.


读书人网 >网络基础

热点推荐