标签: cross-compilation

如何在 Ubuntu 12.04 i386 主机上为 Ubuntu 12.04 armhf 架构交叉编译我的应用程序?

我编写了一个大型应用程序。我可以在以下场景中成功编译应用程序:

  • 在运行 Ubuntu 12.04 的 i386 主机的本机编译中
  • 原生在运行 Ubuntu 12.04 的 PandaBoard 上(这需要很长时间)
  • 在主机 PC 上使用 Qemu 和 chroot 作为 armhf PandaBoard 目标(这需要很长时间)

我想在 i386 主机上交叉编译应用程序以在 PandaBoard 等目标上运行以及时完成构建。到目前为止,使用存储库中的 arm-linux-gnueabihf 工具链进行的尝试产生了无法正确运行的二进制文件。在这个阶段,我没有打包软件的计划。

实现成功交叉编译的推荐方法是什么?

cross-compilation software-installation

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

致命错误:netlink/genl/genl.h:没有那个文件或目录

我正在为 openwrt 交叉编译 hostapd。我得到fatal error: netlink/genl/genl.h: No such file or directory. 我已经安装了 libnl-3.2.24。如果我直接编译(不是交叉编译),那么 hostapd 编译正确,没有任何错误。

cross-compilation hostapd

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

如何在 Linux Ubuntu for MacOS 上创建 DMG 文件

我在 linux 上为 MacOS 交叉编译了一个程序,现在我希望该 MacOS 二进制文件转换为 MacOS 的 DMG 文件。

有没有办法将 Linux (Ubuntu) 上的 MacOS 二进制文件转换为 MacOS 的 DMG 文件?

macosx binary cross-compilation

10
推荐指数
1
解决办法
4564
查看次数

有没有办法将用 C++ 编写的 Qt5 程序编译到 Ubuntu Touch?

我正在用 Qt5 和 C++ 创建一个程序,我想为 Ubuntu Touch Preview 或 Ubuntu desktop arm 编译我的程序。

我在 Nexus 7 上运行这些系统。我找到了正确的 C++ 编译器 ( arm-linux-gnueabihf-g++),但是我怎样才能让 Qt5 工作呢?

application-development cross-compilation ubuntu-touch

9
推荐指数
1
解决办法
6864
查看次数

如何使用 gcc 为树莓派交叉编译程序?

我喜欢在我的主计算机上使用 gcc 来编译小的 C 和 C++ 程序。但是,我也有一个 Raspberry Pi,而且,作为一台 700-MHz 的单核计算机,我希望每次我想为它创建一个二进制文件时不必在它上面做我的开发工作。我如何(因为我知道有一种方法)使用 x86 笔记本电脑为 Raspberry Pi 交叉编译我的程序?有没有办法可以在 Pi 上编译 C(++) 程序但生成 x86 二进制文件?如果有帮助,“SoC 是 Broadcom BCM2835。它包含一个 ARM1176JZFS,带有浮点......”(根据官方Raspberry Pi 常见问题解答)。

gcc cross-compilation raspberrypi

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

如何使用apt-get下载多架构库?

是否可以强制 apt-get 下载我要安装的库的多架构二进制文件?

或者 apt-get 不是正确的工具吗?

apt cross-compilation

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

在 Linux 系统上用 qt 构建 Windows 可执行文件

我一直在尝试在 Linux 中编译 .pro 文件以生成 Windows 可执行文件。我已经阅读了世界上所有关于使用 mingw 的链接,但到目前为止还没有任何效果。是否有我遗漏的东西,或者有人对如何做到这一点有非常好的一步一步吗?

Ubuntu 14.04.2 QT 4.8

qt cross-compilation

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

14.04.01 32 位:交叉编译时缺少 g++ 64 位包含文件

所以,我已经安装了 32 位的 Xubuntu 14.04.1。我们有一些接口代码,我们打算在其中为我们支持的各种平台和 Windows DLL 发布 SO。(是的,我知道,二进制版本不好,但在这里也不相关。)

我正在尝试使用-m32/ -m64gcc/g++ 参数构建具有 32 位 14.04.01 的 32 位和 64 位 SO 。32 位版本工作正常,但 64 位版本失败

/usr/include/c++/4.8/string:38:28: fatal error: bits/c++config.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

签入包含文件,该文件真正存在于 32 位,但缺少 64 位。

谷歌搜索这个问题,这似乎在 GCC/G++ 4.6 过去发生过,但后来被标记为固定。但是 14.04.1 使用的是 GCC/G++ 4.8,这表明 GCC/G++ 4.8 中的那些库出现了回归。这是其他人见过的东西吗?

如有必要,我可以为 64 位 14.04.1 设置一个新的 VM,看看它是否会选择正确的库版本。如果可能的话,我宁愿不这样做,因为我还有一堆其他东西,我也必须重新安装。有更好的解决方案吗?如果我确实安装了 64 位 14.04.1,我肯定能够交叉编译回 32 位而不会丢失另一个方向的标头吗?

64-bit gcc c++ g++ cross-compilation

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

如何使用 x86_64-w64-mingw32 交叉构建最新的稳定 Qemu

安装MinGW和克隆的“最新的稳定”分支QEMU

sudo apt-get install -y mingw-w64
cd ~/
git clone -b stable-2.2 git://git.qemu.org/qemu.git
cd ~/qemu
Run Code Online (Sandbox Code Playgroud)

然后从@ http://wiki.qemu.org/Hosts/W32#Building_QEMU_for_W64我试过:

./configure --cross-prefix=amd64-mingw32msvc-
Run Code Online (Sandbox Code Playgroud)

现在我得到:

ERROR: "amd64-mingw32msvc-gcc" either does not exist or does not work
Run Code Online (Sandbox Code Playgroud)

更新:

~/Scripts/qemu$ ./configure --cross-prefix=x86_64-w64-mingw32-
ERROR: pkg-config binary 'x86_64-w64-mingw32-pkg-config' not found
Run Code Online (Sandbox Code Playgroud)

第二次更新:

修复了以前的问题

sudo link /usr/bin/pkg-config /usr/bin/x86_64-w64-mingw32-pkg-config
sudo apt-get --no-install-recommends -y build-dep qemu
Run Code Online (Sandbox Code Playgroud)

但现在我得到:

owner@K53TA:~/qemu$ ./configure --cross-prefix=x86_64-w64-mingw32-

ERROR: zlib check failed
       Make sure to have the zlib libs and headers installed.
Run Code Online (Sandbox Code Playgroud)

但已zlib1g-dev安装

package-management cross-compilation

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

使用 gcc-multilibs 为 ARM 交叉编译

AskUbuntu 中有各种与交叉编译相关的问题。他们对我帮助不大。

我曾经为 ARM 开发 gcc-4.5/4.6。它以名称在 Ubuntu 仓库中可用gcc-4.*-arm-linux-gnueabi

我的主机 linux 在 Ubuntu-12.04 上运行。当我计划迁移到 4.7/4.8 版本的最新 GCC 交叉编译器时,发现这些是 repo 中唯一可用的包列表:

gcc-4.*             
gcc-4.*-base        
gcc-4.*-doc         
gcc-4.*-locales     
gcc-4.*-multilib    
gcc-4.*-plugin-dev  
gcc-4.*-source 
Run Code Online (Sandbox Code Playgroud)

我找不到专门用于 ARM 编译器的版本。gcc-4.*-multilib必须是处理所有交叉编译内容的包。我如何使用这个包为 ARM 进行交叉编译soft-float

我无法从搜索引擎中获取太多信息。甚至可以帮助解决我的问题的链接也值得赞赏。

gcc cross-compilation

6
推荐指数
0
解决办法
1327
查看次数