libtool 适配 HarmonyOS PC 完整踩坑指南 概述 GNU Libtool 是一个通用的库支持脚本,用于简化在不同平台上构建和使用共享库的过程。 项目背景 项目名称: GNU Libtool 版本: 2.4.10 构建系统: Autotools (autoconf, automake, libtool) 目标平台: HarmonyOS PC (aarch64 .1 .TH LIBTOOL 1 "2024" "GNU Libtool" .SH NAME ... install: ./. 1 "2024" "GNU Libtool" .SH NAME libtool \- GNU libtool ... 2.4.10 for HarmonyOS PC,生成以下文件: libtool - 主程序 libtoolize - 初始化脚本 libltdl - 动态加载库 头文件和文档 参考资源 GNU Libtool
的开发,先是安装了Fedora,觉得不好,想安装openSuSE,但发现安装包太大,最后仍选择了ubuntu 12.04,默认没有安装automake等工具,按提示逐一进行了安装,遇到如下这个错误时,表示libtool Make.rules.in from the format of DOS to UNIX OK. configure.ac:64: error: possibly undefined macro: AC_PROG_LIBTOOL See the Autoconf documentation. autoconf ERROR 只需要执行“sudo apt-get install libtool”安装好即可解决。
/libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I../api -I../sfbpf -I.. /libtool --mode=install /usr/bin/install -c libdaq.la libdaq_static.la '/usr/local/lib' libtool: /libdaq.a /usr/local/lib/libdaq.a libtool: install: chmod 644 /usr/local/lib/libdaq.a libtool: install /lib/libdaq_static.a libtool: install: chmod 644 /usr/local/lib/libdaq_static.a libtool: install: ranlib
o: 编译的目标文件 a: 静态库,其实就是把若干o文件打了个包 so: 动态链接库(共享库) lo: 使用libtool编译出的目标文件,其实就是在o文件中添加了一些信息 la: 使用libtool编译出的库文件 ,其实是个文本文件,记录同名动态库和静态库的相关信息 1 libtool的工作原理 libtool 是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口中;使用libtool的标准方法 可以认为libtool是gcc的一个抽象,其包装了gcc(或者其他的编译器),用户无需知道细节,只要告诉libtool需要编译哪些库即可,libtool将处理库的依赖等细节。 libtool只与后缀名为lo、la为的libtool文件打交道。 注意:libtool在链接的时候只会涉及到后缀名为la的libtool文件;实际的库文件名称和库安装路径以及依赖关系是从该文件中读取的。
1.下载 git clone https://github.com/google/glog 2.配置 sudo apt-get install autoconf automake libtool 3.编译 /libtool --mode=install /usr/bin/install -c libglog.la '/usr/local/lib' libtool: install: /usr/bin /install -c .libs/libglog.so.0.0.0 /usr/local/lib/libglog.so.0.0.0 libtool: install: (cd /usr/local/lib : install: /usr/bin/install -c .libs/libglog.lai /usr/local/lib/libglog.la libtool: install: /usr/bin libtool: install: ranlib /usr/local/lib/libglog.a libtool: finish: PATH="/usr/local/sbin:/usr/local/
控制台输入 yum install libpng-dev libtiff5-dev libwebp-dev libopenjp2-7-dev libgif-dev automake g++ git libtool /configure make sudo make install 安装完成提示 tops xtractprotos '/usr/local/bin' libtool: install: /usr/bin -c .libs/convertfilestops /usr/local/bin/convertfilestops libtool: install: /usr/bin/install -c .libs /usr/local/bin/convertsegfilestopdf libtool: install: /usr/bin/install -c .libs/convertsegfilestops libtool: install: /usr/bin/install -c .libs/fileinfo /usr/local/bin/fileinfo libtool: install: /usr/bin
/libtool: line 885: libtool: ignoring unknown tag : command not found .. /libtool: line 1019: *** Future versions of Libtool will require --mode=MODE be specified.: command not /libtool: line 1162: X-I.: command not found ../libtool: line 1162: X-I..: command not found .. /libtool: line 1162: X-g: command not found ../libtool: line 1162: X-O2: command not found .. /libtool: line 1219: libtool: compile: cannot determine name of library object from `': command not found
以下是我们编译mod_pony模块的方法: apxs -i -a -c mod_pony.c /usr/lib64/apr-1/build/libtool --silent --mode=compile ='/usr/lib64/apr-1/build/libtool' mod_pony.la /usr/lib64/httpd/modules /usr/lib64/apr-1/build/libtool --mode=install cp mod_pony.la /usr/lib64/httpd/modules/ libtool: install: cp .libs/mod_pony.so /usr/ libtool: install: cp .libs/mod_pony.a /usr/lib64/httpd/modules/mod_pony.a libtool: install: chmod 644 /usr/lib64/httpd/modules/mod_pony.a libtool: install: ranlib /usr/lib64/httpd/modules/mod_pony.a libtool
以下是我们编译 mod_pony 模块的方法: apxs -i -a -c mod_pony.c / usr / lib64 / apr-1 / build / libtool --silent - ='/ usr / lib64 / apr-1 / build / libtool'mod_pony.la / usr / lib64 / httpd / modules / usr / lib64 / apr-1 / build / libtool --mode = install cp mod_pony.la / usr / lib64 / httpd / modules / libtool:install :cp .libs / mod_pony.so /usr/lib64/httpd/modules/mod_pony.so libtool:install:cp .libs / mod_pony.lai libtool:install:chmod 644 /usr/lib64/httpd/modules/mod_pony.a libtool:install:ranlib /usr/lib64/httpd
以下是我们编译 mod_pony 模块的方法: apxs -i -a -c mod_pony.c / usr / lib64 / apr-1 / build / libtool --silent - ='/ usr / lib64 / apr-1 / build / libtool'mod_pony.la / usr / lib64 / httpd / modules / usr / lib64 / apr-1 / build / libtool --mode = install cp mod_pony.la / usr / lib64 / httpd / modules / libtool:install :cp .libs / mod_pony.so /usr/lib64/httpd/modules/mod_pony.so libtool:install:cp .libs / mod_pony.lai libtool:install:chmod 644 /usr/lib64/httpd/modules/mod_pony.a libtool:install:ranlib /usr/lib64/httpd
: link: (cd ".libs" && rm -f "libsqlite3.so" && ln -s "libsqlite3.so.0.8.6" "libsqlite3.so") libtool: link: ar cru .libs/libsqlite3.a sqlite3.o libtool: link: ranlib .libs/libsqlite3.a libtool: link: ( /libtool --mode=install /usr/bin/install -c libsqlite3.la '/usr/local/sqlite3.11/lib' libtool: install : /usr/bin/install -c .libs/libsqlite3.so.0.8.6 /usr/local/sqlite3.11/lib/libsqlite3.so.0.8.6 libtool /libtool --mode=install /usr/bin/install -c sqlite3 '/usr/local/sqlite3.11/bin' libtool: install: /
安装必备工具m4, autoconf, automake, libtool 安装m4 cd temp wget http://ftp.gnu.org/gnu/m4/m4-1.4.18.tar.gz /configure --prefix=/your_root_path/local make make install 安装libtool cd temp wget http://mirror.csclub.uwaterloo.ca /gnu/libtool/libtool-2.4.6.tar.gz cd libtool-2.4.6 tar zxvf libtool-2.4.6.tar.gz . 可分别使用下面的命令进行版本查询并验证是否安装成功: m4 --version autoconf --version automake --version libtool --version 2.安装boost
curl -O http://mirrors.kernel.org/gnu/libtool/libtool-2.4.6.tar.gz tar xzvf libtool-2.4.6.tar.gz cd libtool-2.4.6 .
/libtool --mode=compile gcc -O2 -I. -c ./jcapimin.c make: . /libtool: Command not found make: *** [jcapimin.lo] Error 127 root@localhost:/etc/apt# ls apt.conf.d cdrom precise main root@localhost:/etc/apt# apt-get update root@localhost:/etc/apt# apt-get install libtool testout* config.log config.status rm -f -r knr .libs _libs root@localhost:~/jpeg-6b# cp /usr/share/libtool /config/config.sub . root@localhost:~/jpeg-6b# cp /usr/share/libtool/config/config.guess . root@localhost
操作如下所示,会提示你缺少libtool这个包,然后现在安装一下这个包: [root@slaver1 jzmq-master]# . /autogen.sh autogen.sh: error: could not find libtool. libtool is required to run autogen.sh. 然后呢,安装libtool出现的问题以及解决方法如下所示: 1 [root@slaver1 rpms-32]# rpm -ivh libtool-2.2.6-15.5.el6.i686.rpm 2 error: Failed dependencies: 3 autoconf >= 2.58 is needed by libtool-2.2.6-15.5.el6.i686 4 automake >= 1.4 is needed by libtool-2.2.6-15.5.el6.i686 5 [root@slaver1 rpms-32]# rpm -ivh autoconf
补充: 1、安装sumo make时提示:exec: g++: not found 解决方案:安装gcc-c++ 2、安装sumo make时报错 libtool : link: unsupported hardcode properties libtool: link: See the libtool documentation for more information libtool: link: Fatal configuration error. 重新configure一下即可。
/configure make -j4 sudo make install libtools wget http://mirrors.kernel.org/gnu/libtool/libtool-2.4.7 .tar.gz && tar -xzvf libtool-2.4.7.tar.gz cd libtool-2.4.7 .
2、解决编译protobuf库文件工具:autoconf automake libtool curl make g++ unzip;通过命令:yum -y install autoconf automake libtool curl make gcc-c++ unzip libffi-dev安装 安装libffi-dev:yum install -y libffi libffi-devel 3、输入命令: /autogen.sh进行环境检查 autoreconf: command not found yum install -y autoconf automake libtool 5、输入命令:.
names, these are: - glibc, glibc-devel, gcc, cpp - Some version of awk - libtool (1.4+) Note that there are reports of success with libtool 1.3.x under f acinclude.m4 aclocal.m4 Makefile.in config.h.in configure Makefile find current versions of libtool cat acinclude.m4.ntop libtool.m4.in > acinclude.m4 aclocal autoheader autoconf
执行make configure时报:autoconf: command not found错, 需要安装libtool: 执行命令安装: yum install install autoconf automake libtool