使用静态lib配置测试

时间:2015-02-04 01:56:56

标签: linux raspberry-pi cross-compiling libz

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

  

configure:11400:arm-linux-gnueabihf-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-gnueabihf/4.8.3/../。 ./../../arm-linux-gnueabihf/bin/ld:找不到-lz   collect2:错误:ld返回1退出状态   配置:11400:$? = 1   configure:失败的程序是:   ....

因为我使用工具链进行手臂,所以arm-ld无法找到zlib。

是否有任何选项可以配置不使用共享库进行编译,但尝试使用静态库(例如-static -lz)。

命令是

  

./ configure --enable-static = true --enable-shared = false --with-zlib-include =“/ home / user / RPI_DEV / lib / include”--with-zlib-lib =“/ home / user / RPI_DEV / lib / lib“LDFLGS =” - L / home / user / RPI_DEV / lib / lib“CPPFLAGS =” - I / home / user / RPI_DEV / lib / include“-enable-static --host = arm-linux-gnueabihf --prefix = / home / user / RPI_DEV / lib --exec-prefix = / home / user / RPI_DEV / lib

2 个答案:

答案 0 :(得分:1)

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

你正在做什么可能工作,但前提是你正确拼写LDFLAGS:

LDFLGS =" -L /家庭/用户/ RPI_DEV / LIB / LIB"

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

无论如何,应该有一个Ubuntu交叉开发指南,解释如何执行此操作。它有点偏离主题,但对于Gentoo,你使用' crossdev'安装工具链,然后安装正常软件包安装机制的crossdev特定版本([host] -emerge),将zlib安装到工具链中。

此外,我可以找到的任何当前版本的libpng都不支持--with-zlib-include和--with-zlib-lib。如果您正在为RPi(或者实际上是任何ARM系统)交叉编译libpng,那么您应该使用可以找到的最新版本的1.6。

答案 1 :(得分:0)

除非有人以正确的方式解决这个问题,否则这就是我已经完成的黑客攻击。

  1. 打开configure.ac文件
  2. 查找并注释掉行
  3.   

    AC_CHECK_LIB(z,zlibVersion ,, AC_ERROR([zlib not installed]))

    配置将通过wihout检查zlib,然后手动添加zlib

      

    LDFLGS =“ - L / home / user / RPI_DEV / lib / lib -L ​​/ home / user / RPI_DEV / lib / lib / libz.a”

    1. 运行autoconf
    2. 运行./configure ...