Ubuntu交叉编译ARM平台的开源库glib、libevent的问题记录

发布于:2023-01-01 ⋅ 阅读:(685) ⋅ 点赞:(0)

        本周在Ubuntu上交叉编译ARM平台几个开源库open source,耗费了较长时间,其中编译glib遇到了比较难缠的问题,需要记录下来,避免忘记。工具链是平台方提供的现成的。

1、编译glib时,在configure阶段遇到了如下问题:

Checking for msgfmt...no
Checking for gettest...
configure: error:
*** You must have either have gettext support in your C library, or use the
*** GNU gettext library. (gettext - GNU Project - Free Software Foundation)

        结论:此时check的是Ubuntu下的gettest库,而非工具链的。由于编译服务器无网络,故没有采用sudo apt-get install安装,而是下载源码编译安装。安装之后错误变成了:

Checking for msgfmt.../usr/local/bin/msgfmt
...
/usr/local/bin/msgfmt: error while loading shared libraries: libgettextsrc-0.21.so: cannot open shared object file: No such file or directory。

        这说明检测到了msgfmt但是运行的时候又没有找到libgettextsrc-0.21.so,原来是make install gettext的时候所有的so放在了/usr/local/lib下,需要cp如下3个lib*text*.so*到/usr/lib下即可

:~$ ldd /usr/local/bin/msgfmt
    linux-vdso.so.1 (0x00007fff5de71000)
    libgettextsrc-0.21.so => /usr/lib/libgettextsrc-0.21.so (0x00007f478be9c000)
    libgettextlib-0.21.so => /usr/lib/libgettextlib-0.21.so (0x00007f478bb34000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f478b743000)
    libtextstyle.so.0 => /usr/lib/libtextstyle.so.0 (0x00007f478b4ab000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f478b10d000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f478c300000)

2. 编译libevent时,如果已经编译成功,make clean之后再次编译,会报如下错误:

configure: error: cannot find install-sh, install.sh, or shtool in build-aux "/home/zhaoxing/eSDK_for_MRM/open_source_2_17u18/libevent/src"/build-aux


此时需要运行

        libevent/src$ autoreconf -vfi

-d 不删除临时文件 
-f 认为所有的文件都是过期的文件/强制执行 
-i 复制辅助文件
-s 创建符号链接,而不是复制 
-m 当可用时,重新运行命令./configure 和 make 
-W 报告语法错误信息

        水平有限,难免疏漏错误。且发文耗时,故只讲结论,供将来参考。


网站公告

今日签到

点亮在社区的每一天
去签到

热门文章