3

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

/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内容configureinstalldir/bin/ucc二进制文件需要 installdir 下的目录中的一些文件,open64-gcc-4.2.0但由于这是 中提到的路径--prefix,所以它仍在那里寻找它,我希望它在当前机器中查看相同的目录。仅供参考,我没有 sudo/root 权限。

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

我在超级用户中遇到过类似的问题,但是由于发生了很多编辑并且我没有对新问题做出回应,所以我在这里写了它。

4

1 回答 1

0

检查这个工具:https ://github.com/pgbovine/CDE

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

于 2013-05-27T11:30:23.030 回答