[英]What is important when cross compiling using automake?
简单地回答这个问题可能并不容易,但是我不认为它是开放式的:使用automake
并configure
为交叉编译库时,为避免“工具链泄漏”,最重要的事情是什么?
这是一些背景...
首先,在此处定义了工具链泄漏: http : //landley.net/writing/docs/cross-compiling.html
我正在使用工具链从源代码编译libuuid,该工具链是为将在基于定制debian的系统上运行的交叉编译代码而设计的。 该项目的目标是使用工具链编译代码(包括我的应用程序依赖的第3方库),以便编译独立于主机。
到目前为止,我已经尝试提供工具链的gcc
编译器,它看起来还不错,但是当我运行./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
<...>
然后不久,您可以看到它在我的主机系统上找到了grep,这似乎是“工具链泄漏”
我不会将其称为“工具链泄漏”,并且引用的文章也没有。 它确实将这些事情称为“泄漏”:
--build
系统的头文件不正确(在本文和您的文章中称为“主机”)。 --build
系统中的库不正确 我认为我使用过的任何工具链都不具有自己的grep
可执行文件。 它会有什么不同?
话虽如此,它不应该使用--build
的linux
头文件。 通常,工具链具有它们自己的副本。 那将是一个“泄漏”。
我正在使用工具链从源代码编译libuuid,该工具链是为将在基于定制debian的系统上运行的交叉编译代码而设计的。 该项目的目标是使用工具链编译代码(包括我的应用程序依赖的第3方库),以便编译独立于主机。
它将是这样的:使用工具链编译依赖项,并将其安装在工具链/usr/lib
(或者,如果您不想弄乱工具链,则可以计划保留交叉编译的库)。 使用工具链编译libuuid
(当然是引用依赖关系)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.