使用静态lib配置测试



我正试图在Ubuntu 14.04(x_64)上使用zlib为RaspberryPi交叉编译libpng但是配置失败

配置:11400:arm linux gneabihf gcc-o conftest-g-O2-I/home/user/RPI_DEV/lib/include conftest.c-lz-lm>&5./home/user/RPI_DEV/xtools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin//lib/gcc/arm-linux-gneabihf/4.8.3/../../../arm-linux-GNUbihf/bin/ld:找不到-lzcollect2:错误:ld返回1退出状态配置:11400:$?=1.configure:失败的程序是:……

因为我正在使用arm的工具链,arm ld找不到zlib。

有没有任何选项可以让configure不使用共享库进行编译,而是尝试使用静态库(例如-static-lz)。

命令为

/configure--enable static=true--enable shared=false--带zlib include="/home/user/RPI_DEV/lib/include"--带zlib-lib="/hom/user/RPI_DEV/lib/lib"LDFLGS="-L/home/user/RPI_DIV/lib/lib"CPPFLAGS="-I/home/uuser/RPI-DEV/lib/include"-enable static--host=arm linux gneabihf--prefix=/home/user/RPI_DEV/lib--exec prefix=/home/user/RPI_DEV/lib

在尝试在另一个项目中使用zlib之前,您需要交叉构建并将其安装到工具链中。

你所做的可能有效,但前提是你拼写正确:

LDFLGS="-L/home/user/RPI_DEV/lib/lib"

注意缺少的"A"。我不知道为什么你的第二次尝试成功了,因为你有同样的拼写错误;可能你的环境中有正确的LDFLAGS?

无论如何,应该有一个Ubuntu交叉开发指南来解释如何做到这一点。这有点偏离主题,但对于Gentoo,您使用"crossdev"来安装工具链,然后使用crossdev特定版本的普通包安装机制([host]-emerge)将zlib安装到工具链中。

此外,我能找到的任何当前版本的libpng都不支持带有zlib include和带有zlib lib的参数。如果您正在为RPi(或者任何ARM系统)交叉编译libpng,那么您应该使用您能找到的最新版本1.6。

除非有人以正确的方式解决这个问题,否则这就是我所做的破解。

  1. 打开config.ac文件
  2. 查找并注释行

AC_CHECK_LIB(z,zlibVersion,AC_ERROR([zlib未安装])

Configure将通过对zlib的wihout检查,然后手动添加zlib

LDFLGS="-L/home/user/RPI_DEV/lib/lib-L/home/user/RPI-DEV/lib/libz.a"

  1. 运行autoconf
  2. 跑步/配置

最新更新