如何在Unix中的几台机器上构建二进制文件并使用它?

时间:2011-11-13 22:36:47

标签: unix makefile build-process configure binary-compatibility

我有一个编译器的源代码,我正在这样构建:

/path/to/srcdir/configure --prefix=/path/to/installdir
make
make install

我想将生成的'installdir'分发给其他机器,意图是任何人都可以使用编译器二进制文件,而无需经过3阶段构建过程(我只是将installdir包含在我的发行版tarball中)。

为了进行测试,我将installdir复制到另一台不同用户的机器上,然后尝试使用我刚复制过的二进制文件编译测试程序,如下所示:

installdir/bin/ucc -mp -o test load_bl.c

然后,我收到如下错误:

cc1: error: /home/sghosh/normalbuild/installdir/open64-gcc-4.2.0/include: Permission denied
cc1: error: /home/sghosh/normalbuild/installdir/open64-gcc-4.2.0/lib/gcc/x86_64-redhat-linux/4.2.0/include: Permission denied
cc1: error: /home/sghosh/normalbuild/installdir/open64-gcc-4.2.0/x86_64-redhat-linux/include: Permission denied

/home/sghosh/normalbuild/install是我的构建计算机上--prefix期间指定为configure的内容。 installdir/bin/ucc二进制文件需要在installdir下的open64-gcc-4.2.0目录中的一些文件,但由于这是--prefix中提到的路径,所以它仍然在那里寻找它,我希望它能够查看当前机器中的相同目录。仅供参考,我没有sudo / root权限。

我如何提出可以在任何机器上工作的二进制发行版(一次构建,在任何地方使用),而不是在这种情况下查看最初的--prefix路径?

我在超级用户中遇到了类似的问题,但由于编辑很多,我对新问题没有回复,所以我在这里写。

1 个答案:

答案 0 :(得分:0)

选中此工具:https://github.com/pgbovine/CDE

CDE是一种工具,可自动打包运行任何Linux命令集所涉及的代码,数据和环境,以便它们可以在另一台计算机上以相同的方式执行,无需任何安装或配置。