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(当然是引用依赖关系)。

相关问题