乐于分享
好东西不私藏

uos x86上编译libetpan源码-补充二

uos x86上编译libetpan源码-补充二

1、在autogen.sh时遇到以下问题:
是因为权限不够,执行以下命令:
sudo chmod 777 autogen.shsudo ./autogen.sh
2、不能找到C编译器,并不是缺少编译工具,是uos系统限制导致的,将应用安全设置为允许任意应用:
3、sudo make编译tests的时候 报错:
问题现象:
在src/.libs里只有libetpan.so和libetpan.so.20的软连接,实际指向的libetpan.so.20.5.0并未生成。看编译输出没有异常任何报错信息,只有tests测试用例找不到libetpan.so的错误提示。
解决方法:
安装以下工具:
sudo apt-get install pkg-configsudo apt-get install m4sudo apt-get install build-essential

扩展知识:

build-essential – 编译工具链的核心

作用: 提供编译和构建软件的基础工具集

包含的关键工具:

  • gcc/g++ – C/C++ 编译器,将源代码编译成机器码

  • make – 自动化构建工具,根据 Makefile 规则编译程序

  • dpkg-dev – Debian 打包工具

  • libc6-dev – C 标准库的开发文件

实际应用示例:

$ ./configurechecking for libcurl... no  # 找不到,即使已安装checking for expat... nochecking for sasl2... no$ makegcc -c file.c  # 可以编译gcc -shared -o libetpan.so file.o  # 链接时缺少 -lcurl/usr/bin/ld: cannot find -lcurlcollect2: error: ld returned 1 exit status

该工具在 libetpan 编译中的作用:

编译所有的 .c 源文件成 .o 目标文件、链接目标文件成最终的 .a 或 .so 库、管理编译流程和依赖关系。