为Raspberry Pi交叉编译第三方库的非繁琐方式

Nic*_*son 5 ubuntu cross-compiling raspberry-pi

我正在尝试将现有的Linux C ++应用程序移植到Raspberry Pi。该应用程序依赖于许多第三方库。

我正在运行Ubuntu 12.04,并使用crosstools-ng构建了我的GCC 4.7交叉编译器(直到后来才意识到,使用官方提供的工具链可以省去麻烦!),我可以为我的树莓。到目前为止,一切都很好。

然后,我开始尝试构建所有第三方库依赖项:GLib,SDL和其他几个。这些依赖关系中的每一个都有其自己的依赖关系,等等。很快变得很明显,手动构建所有这些库的ARM版本将非常繁琐且耗时。有没有更简单的方法?

Nic*_*son 3

在发现ScratchBox2后,我成功地拼凑出了一些可行的东西。ScratchBox2 是一个有助于创建适合交叉编译的 chroot 的工具,并利用QEmu的工具,允许您在计算机上运行外部 CPU 二进制文件。就我而言,ScratchBox2 协调对 Raspbian 独立沙箱的访问,Raspbian 是 Debian 的 ARM 变体,针对 Raspberry Pi 进行了优化。

\n\n

结果是,一旦我把它全部设置好\xe2\x80\x94,并且设置它花了几个乏味的小时\xe2\x80\x94,我就能够简单地输入来sb2 -eR apt-get install ...获取任何所需的ARM包。这是神奇的东西。(警告:我没有运气使用 Ubuntu 12.10 中的官方 ScratchBox2 软件包,因此最好使用官方 Git 存储库的最新修订版从源代码自己构建它最新修订版从源代码自己构建它。)

\n\n

为了帮助您更轻松地重现我的设置,我在 Github 上放置了我的虚拟机的 Vagrant 配方: https: //github.com/nickhutchinson/raspberry-devbox。几乎可以肯定,它的边缘很粗糙 \xe2\x80\x94 这是我第一次使用 Puppet 配置工具\xe2\x80\x94,但希望其他人可以使其更加强大。

\n\n

我发现这些资源非常有帮助:

\n\n\n