0

這可能不簡單,但我不認爲它是開放式的:當使用automakeconfigure來交叉編譯一個庫時,我需要避免「工具鏈泄漏」最重要的事情是什麼? ?使用automake進行交叉編譯時什麼是重要的?

下面是一些背景...

首先,工具鏈泄漏在此定義:http://landley.net/writing/docs/cross-compiling.html

我從源代碼使用爲交叉編譯的代碼,將運行做了一個工具鏈編譯libuuid在一個定製的基於debian的系統上。該項目的目標是使用工具鏈編譯代碼(包括我的應用程序依賴的第三方庫),以便編譯主機的編譯爲獨立

到目前爲止,我試圖提供我的工具鏈的編譯器,看起來不錯,但是當我運行./configure時,有很多事情要檢查,我不知道如何判斷哪些是真正重要的,而我我不知道如何使用它只檢查我的工具鏈並忽略主機系統上的任何內容。下面是幾個例子:

在這裏你可以看到,./configure很高興與我的工具鏈編譯:

checking whether we are using the GNU C compiler... yes 
checking whether <toolchain>/bin/i686-linux-gcc accepts -g... yes 

然後不久之後,你可以看到它在我的主機系統上發現grep這似乎是一個「工具鏈泄漏'

checking for grep that handles long lines and -e... /bin/grep 

然後稍後在主機系統上搜索一些標題。我想我可以指定它應該看看,但我仍然不知道需要哪些頭:

checking for linux/compiler.h... no 
checking for linux/blkpg.h... yes 
checking for linux/major.h... yes 
checking asm/io.h usability... no 
<...> 

回答

1

然後不久之後,你可以看到它發現我的主機系統上的grep這似乎是一個「工具鏈泄漏'

我不會稱之爲「工具鏈泄漏」,而且引用的文章也不會。它確實提到這些事情作爲「泄漏」:從autoconf --build系統

  • 不正確的頭文件(稱爲本文中的「主機」,並在您的文章)。
  • 不當庫從--build系統

我不認爲我用任何工具鏈有它自己的grep可執行文件。它有什麼不同?

這就是說,它不應該使用--build s linux標題。通常工具鏈擁有它們自己的副本。這將是一個'泄漏'。

我正在從源代碼編譯libuuid,使用工具鏈進行交叉編譯,這些代碼將在基於定製debian的系統上運行。該項目的目標是使用工具鏈編譯代碼(包括我的應用程序依賴的第三方庫),以便編譯獨立於主機。

它會去是這樣的:編譯依賴一些工具鏈和工具鏈/usr/lib安裝(或地方在那裏你打算保持交叉編譯庫,如果你不想弄亂你的工具鏈)。用工具鏈編譯libuuid(當然是引用依賴關係)。

相關問題