标签: cross-compilation

如何在交叉编译 glib 中禁用测试程序

尝试使用以下配置参数交叉编译 glib 时出现以下错误:

./configure --prefix=$HOME --host=arm-hisiv400-linux

checking for growing stack pointer... configure: error: in `/home/aa/Hi3536_SDK_V2.0.4.0/glib-2.50.0':
configure: error: cannot run test program while cross compiling
See `config.log' for more details
Run Code Online (Sandbox Code Playgroud)

有没有办法禁用这些测试,以便我的交叉编译过程可以通过?

cross-compilation glib

8
推荐指数
1
解决办法
3400
查看次数

为什么 Linux From Scratch 中使用 Canadian Cross 进行交叉编译?

我正在阅读《Linux From Scratch 11.0》一书。在三。构建 LFS 交叉工具链和临时工具,ii。工具链技术说明,有一些关于加拿大交叉编译的内容。我不明白为什么需要 3 个阶段和 3 台机器才能达到最终结果。文本假设我们从计算机 A 和一个在 A 上运行并为 A 生成二进制文件的编译器开始。那么为什么我们不直接使用该编译器来构建一个在 C 上运行并为 C 构建二进制文件的编译器呢?构建一个在 A 上运行但为 B 构建的编译器,然后构建一个在 B 上运行但为 C 构建的编译器,最后构建在 C 上运行并为 C 构建的编译器,为什么会有这么多麻烦呢?

我还在维基百科上找到了一篇关于它的文章 - https://en.wikipedia.org/wiki/Cross_compiler

cross-compilation

8
推荐指数
2
解决办法
3798
查看次数

编译 buildroot 时出错

我更新了版本“2014.08”(稳定版)的 buildroot 并更新了我的项目的内核版本(3.12.26),当 buildroot 尝试构建linux-headers-3.12.26包时,出现以下错误:

/output/host/usr/arm-buildroot-linux-gnueabi/sysroot 2.6;然后退出1;fi 内核头文件选择不正确:预期为 2.6.x,得到 3.12.x”

我该如何解决?我必须更改脚本check-kernel-headers.sh吗?

kernel cross-compilation buildroot

7
推荐指数
1
解决办法
5227
查看次数

在 64 位系统上构建 32 位

我正在尝试在 x86_64 Ubuntu 11.04 上为 i386(32 位)构建 PHP 内存缓存扩展(v2.2.6)。

./configure默认情况下使用 config.guess(x86_64-unknown-linux-gnu在我的系统上输出),但我想覆盖它。

我将如何继续?

64bit 32bit cross-compilation configure

6
推荐指数
1
解决办法
7235
查看次数

ARM 的交叉编译期望

我已经下载了expect5.4。我正在尝试为运行精简版 linux 的 ARM(PandaBoard) 交叉编译它。

在配置的初始设置中,我尝试

Shell$ ./configure --host=ARM
configure: WARNING: If you wanted to set the --build type, don't use --host.
    If a cross compiler is detected then cross compile mode will be used.
checking for correct TEA configuration... ok (TEA 3.9)
configure: configuring expect 5.45
checking for Tcl configuration... found /home/user1/scripts/tcl8.6.0/unix/tclConfig.sh
checking for existence of /home/user1/scripts/tcl8.6.0/unix/tclConfig.sh... loading
configure: --prefix defaulting to TCL_PREFIX /usr/local
configure: --exec-prefix defaulting to TCL_EXEC_PREFIX /usr/local
checking for ARM-gcc... /home/user1/toolchain/toolchain/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-gcc
checking for C …
Run Code Online (Sandbox Code Playgroud)

linux arm cross-compilation expect

6
推荐指数
1
解决办法
2万
查看次数

安装跨工具链以在 Debian 上构建 ARM 二进制文件

我尝试安装一个交叉工具链,以便我可以在 amd64(Debian 测试“jessie”)上为我的 ARM 系统构建 Linux 内核。我有这个条目sources.list

deb http://www.emdebian.org/debian sid main
Run Code Online (Sandbox Code Playgroud)

当我尝试安装gcc-4.7-arm-linux-gnueabi 时,出现错误:

cc-4.7-arm-linux-gnueabi : 依赖:libgomp1-armel-cross (>=4.7.2-5) 但它不会被安装

libgomp1-armel-cross又依赖于gcc-4.8-base-armel-cross,它在任何地方都不可用。

在某些时候,我确实设法从同一个存储库安装了这些交叉构建工具,甚至在几周前构建了一个现在可以在这些 ARM 系统上运行的内核。该存储库中是否有损坏的东西?我尝试了几个其他版本的 GCC,但仍然遇到同样的问题。

一个不理想的解决方案是在 Ubuntu 12.04 VM 中交叉构建。该发行版具有可从其官方存储库获得的 ARM 交叉编译器。

arm debian gcc cross-compilation linux-kernel

6
推荐指数
2
解决办法
8934
查看次数

在 X86 机器上生成 MIPS 架构汇编代码

当我运行我的 C 程序时,我需要在我的机器上生成MIPS特定的代码。当我简单地奔跑时,

gcc -O2 -S -c hello.c
Run Code Online (Sandbox Code Playgroud)

在我的系统上,我得到了hello.s它似乎生成了一些汇编代码,但它似乎不是MIPS特定的代码。hello.s文件内容如下。

    .file   "hello.c"
    .section    .rodata.str1.1,"aMS",@progbits,1
.LC0:
    .string "Hello world"
    .text
    .p2align 4,,15
.globl main
    .type   main, @function
main:
.LFB11:
    .cfi_startproc
    movl    $.LC0, %edi
    xorl    %eax, %eax
    jmp printf
    .cfi_endproc
.LFE11:
    .size   main, .-main
    .ident  "GCC: (GNU) 4.4.7 20120313 (Red Hat 4.4.7-4)"
    .section    .note.GNU-stack,"",@progbits
Run Code Online (Sandbox Code Playgroud)

如何在我的机器上生成MIPS特定代码?

我的机器详细信息如下。

arch
x86_64
Run Code Online (Sandbox Code Playgroud)

compiling cross-compilation mips assembly

6
推荐指数
1
解决办法
1万
查看次数

无法为 arm 交叉编译 openSSH,缺少 zlib

我正在尝试为 ARM 交叉编译 openSSH,但似乎我没有成功:

这是我的配置参数:

./configure --host=arm CC=arm-hisiv400-linux-g++ --prefix=/home/aa/Hi3536_SDK_V2.0.4.0/openSSH --with-zlib=/usr/include

checking zlib.h presence... yes
configure: WARNING: zlib.h: present but cannot be compiled
configure: WARNING: zlib.h:     check for missing prerequisite headers?
configure: WARNING: zlib.h: see the Autoconf documentation
configure: WARNING: zlib.h:     section "Present But Cannot Be Compiled"
configure: WARNING: zlib.h: proceeding with the compiler's result
configure: WARNING:     ## ------------------------------------------- ##
configure: WARNING:     ## Report this to openssh-unix-dev@mindrot.org ##
configure: WARNING:     ## ------------------------------------------- ##
checking for zlib.h... no
configure: error: *** zlib.h …
Run Code Online (Sandbox Code Playgroud)

compiling cross-compilation

6
推荐指数
1
解决办法
7988
查看次数

如何让 APT 相信跨架构包是手动安装的?

我在 amd64 机器上有一个 qemu-armhf chroot 环境(主要用于编译 Raspberry Pi 代码)。因此,它可以运行 armhf 和 amd64 二进制文件,但后者速度更快。

为了获得更好的速度,我在 chroot 中安装了某些软件包(例如 make)的 amd64 版本。这工作得很好,直到我需要 apt-get 一些其他的 armhf 包,并且它恰好将 make 列为依赖项,于是我得到了这个:

The following packages have unmet dependencies:
 build-essential : Depends: make but it is not going to be installed
 dpkg-dev : Depends: make but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
Run Code Online (Sandbox Code Playgroud)

如果我尝试建议的命令,那么它会说它想要安装make:armhf和卸载make:amd64。我不希望它这样做。我如何告诉 APTmake:armhf已经安装(因为我希望用它make:amd64来满足依赖关系)而不实际安装它?

我尝试使用, …

debian apt cross-compilation multiarch

5
推荐指数
1
解决办法
1775
查看次数

在哪里可以找到并安装 centos-7 的 mingw-w64 软件包?

尝试在centos7上进行交叉编译。(我在那个环境中运行了 jenkins。)网络上有很多过时的 mingw 文档。显然这里有一个答案,但已经消失了。这里讨论交叉编译步骤。我可以执行sudo yum groupinstall -y packagename,但我尝试的任何方法都不起作用(MinGW-64 mingw-64 mingw64、MinGW64 或 MinGW 交叉编译器),正如我在各种帖子和论坛中看到的那样。我也尝试下载源代码,但没有成功,因为缺少各种先决条件,当我尝试获取它们时,它们不存在或版本错误。

centos mingw cross-compilation

5
推荐指数
1
解决办法
1万
查看次数