Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux包交叉编译_Linux_Compilation_Cross Compiling_Archlinux_Pandaboard - Fatal编程技术网

Linux包交叉编译

Linux包交叉编译,linux,compilation,cross-compiling,archlinux,pandaboard,Linux,Compilation,Cross Compiling,Archlinux,Pandaboard,我正在使用单板计算机(Pandorn)构建一个非视觉监视(sonar)平台,运行ArchLinux。问题是,当我需要在安装中添加功能时,make和make-install过程会在低功耗计算机上花费很长时间。我希望有类似经验的人给我指出一个解决方案,在另一个linux机器上编译包(也运行Arch),然后将它们移植到SBC。您是否阅读或访问过linux Format杂志?第166期有一篇关于这个问题的文章。目标是树莓皮,但过程是相同的 基本上,您需要在x86机器上安装交叉编译器。试试这个: yaou

我正在使用单板计算机(Pandorn)构建一个非视觉监视(sonar)平台,运行ArchLinux。问题是,当我需要在安装中添加功能时,
make
make-install
过程会在低功耗计算机上花费很长时间。我希望有类似经验的人给我指出一个解决方案,在另一个linux机器上编译包(也运行Arch),然后将它们移植到SBC。

您是否阅读或访问过linux Format杂志?第166期有一篇关于这个问题的文章。目标是树莓皮,但过程是相同的

基本上,您需要在x86机器上安装交叉编译器。试试这个:

yaourt -S arm-linux-gnueabi-gcc
在进一步操作之前,请使用一个简单的
hello,world
测试该工具链,您可以在x86上编译该工具链,将其复制到设备并执行

/* hello.c */
#include <stdio.h>
int main ()
{
   printf("Hello, World!\n");
   return 0;
}
有了它,您可以交叉编译内核:

git clone --depth 1 git://github.com/raspberrypi/linux.git
cd linux
ssh root@alarmpi zcat /proc/config.gz > .config
make -j 8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig -k
您可以使用distcc在Pandorn上执行构建,但让它将编译委托给您的x86机器,该机器将使用交叉编译器工具链为arm编译。在arm和x86上:

pacman -S distcc
手臂侧是客户端。编辑其配置,
/etc/makepkg.conf
,告诉它有关服务器的信息(您的x86框):

j8告诉它使用i7上的所有内核。适当调整

在服务器上,需要配置distccd
/etc/conf.d/distccd
以允许客户端连接,然后启动
distccd
守护进程。然后从客户端启动构建

用于构建Arch包的makepkg工具负责distcc链接。如果您正在构建自己的软件包,我建议您将它们包装在PKGBUILD中,以便为您完成工作


(如果你的董事会使用硬浮动,你可能需要对上面的一些内容进行调整)

谷歌似乎找到了一些有用的文章,例如似乎很有趣的Paul R.谢谢!我担心这对我的专业水平来说可能有点太高了,但我还是会去看看。同时也会看看一些关于使用Ubuntu构建机器的基本说明。Paul R的链接提供了更多关于交叉编译的信息。具有在其他服务器上编译代码并在其他服务器上运行em的最佳方法。您需要创建一个chroot环境来运行交叉编译工具链。
pacman -S distcc
BUILDENV=(fakeroot distcc color !ccache)
DISTCC_HOSTS="myx86host"
MAKEFLAGS="-j8"