簡體   English   中英

使用靜態庫配置測試

[英]configure test with static lib

我正在嘗試使用zlib在Ubuntu 14.04(x_64)上交叉編譯RaspberryPi的libpng,但配置失敗

配置: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的臂-Linux的gnueabihf-raspbian-64 / bin中/../ LIB / GCC /臂-Linux的gnueabihf / 4.8.3 /../../../../臂Linux的-gnueabihf / bin / ld:找不到-lz collect2:錯誤:ld返回1退出狀態配置:11400:$? = 1配置:失敗的程序為:....

因為我將工具鏈用於arm,所以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

您需要交叉構建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. 打開configure.ac文件
  2. 查找並注釋掉行

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

配置將通過wihout檢查zlib,然后手動添加zlib

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

  1. 運行autoconf
  2. 運行./configure ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM