【问题标题】:cross compiling, why "checking whether we are cross compiling... no"?交叉编译,为什么“检查我们是否在交叉编译......不”?
【发布时间】:2012-10-31 02:55:52
【问题描述】:

我正在尝试自己编译跨平台工具链。

当我编译binutils-2.22时,它成功但是为什么出现“检查我们是否正在交叉编译......没有”?我想应该是“是”吧?

我的主机是运行ubuntu的i686,我的目标是arm。

~/telink_linux/build-tools/binutils-2.22$ ./configure --prefix=/home/shuaihan/telink_linux/tools --target=arm-linux
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... arm-unknown-linux-gnu
...
checking whether we are cross compiling... no
...
configure: creating ./config.status
config.status: creating Makefile

之后,我“make”和“makeinstall”,arm-linux-*就创建好了。

谢谢!

【问题讨论】:

    标签: cross-compiling binutils


    【解决方案1】:

    因为您没有交叉编译 binutils;您正在编译跨 binutils。如果您正在编译 ARM binutils 以在 ARM 上运行,或者如果您正在编译 ARM binutils 以在 第三个​​ 平台(既不是 i686-linux 也不是 arm-linux)上运行,那么消息会说“是”。

    【讨论】:

    • 哦,我明白了。看来我误解了这条消息的含义。因为我的“构建系统”和“宿主系统类型”一样,所以不是“交叉编译”吧?谢谢!
    • 没错。您正在构建交叉工具,因为“主机”和“目标”不同,但您并没有交叉编译工具本身,因为“构建”和“主机”是相同的。
    • 这是旧的,但有一个警告没有列出:Linux 支持binfmt_misc,它允许这个测试在实际交叉编译时失败;例如,如果系统配置为通过 Wine 运行 .exe 文件而无需显式调用 wine,Linux 系统上的./configure --target=x86_64-w64-ming32 有时会对交叉编译检查说“不”。要解决这个问题,请通过强制它不运行来绕过检查:./configure --host=$(./config.guess) --target=x86_64-w64-mingw32
    • 呃。我打错了,由于某种原因无法编辑我的最后一条评论。它应该是./configure --build=$(./config.guess) --host=x86_64-w64-mingw32——当然,为预期目标调整--host。对此感到抱歉。
    猜你喜欢
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-04
    • 2011-03-13
    • 2014-01-09
    • 1970-01-01
    相关资源
    最近更新 更多