centos7 编译bluez ARM版本及undefined reference to `g_thread_new‘

        在我辛辛苦苦编译成功 glib 库后(看我上一篇文章 centos7 glib2.0 arm版本的编译),以为可以顺利编译我的 bluez ARM 版本,结果出现了最后一个错误(其中一个是私有库里的),如:

就是这个 g_thread_new 没有找到实现,然后在网上搜了半天,都说是 glib 库里的实现,但我在昨天下载的glib代码里都没有发现:

centos7 编译bluez ARM版本及undefined reference to `g_thread_new‘_第1张图片

甚至在已经生成的glib目录下,也找不到相关的符号:

centos7 编译bluez ARM版本及undefined reference to `g_thread_new‘_第2张图片

最后想到是不是还是 glib 版本不对,可能 glib 版本过低了?于是下载了好几个版本的 glib,最后皇天不付有心人啊,真的是版本过低了,真想干死这个 glib。

centos7 编译bluez ARM版本及undefined reference to `g_thread_new‘_第3张图片

我下载的是2.40.0 版本的:wget http://ftp.acc.umu.se/pub/GNOME/sources/glib/2.40/glib-2.40.0.tar.xz。简直要崩溃啊,那我编译的 glib-2.30.0 版本不是白白浪费我的时间了吗?此处有很多草泥马路过!!!!!

然后跟前一篇文章一样,从头开始编译,好在之前都踩过好多坑,这次按部就班操作:

./configure --prefix=/usr/local/glib --host=arm-himix200-linux --cache-file=arm-himix200-linux.cache CC="arm-himix200-linux-gcc" LIBFFI_CFLAGS=/usr/local/lib/libffi-3.0.13/include/

arm-himix200-linux.cache 文件里同样地添加了这些:

ac_cv_func_qsort_r=no
glib_cv_stack_grows=no
glic_cv_uscore=no
glib_cv_uscore=no
ac_cv_func_posix_getpwuid_r=no
ac_cv_func_posix_getgrgid_r=no

遇到了新的错误

centos7 编译bluez ARM版本及undefined reference to `g_thread_new‘_第4张图片

这个错误直接看这篇文章:gdate error: format not a string literal -Werror=format-nonliteral 错误详解_龙赤子的博客-CSDN博客

解释得很到位,这里我就直接修改Makefile 了,把那个-Werror=format=2编译选项删掉。 

centos7 编译bluez ARM版本及undefined reference to `g_thread_new‘_第5张图片

踩过这么坑,这次比上次果然顺利了好多了,最后 make install 后,终于找到 g_thread_new 的实现了:

centos7 编译bluez ARM版本及undefined reference to `g_thread_new‘_第6张图片

历尽千辛万苦,最后编译 bluez 也终于成功了

centos7 编译bluez ARM版本及undefined reference to `g_thread_new‘_第7张图片

你可能感兴趣的:(c/c++,#,bluez,c语言)