配置“--prefix”选项以进行交叉编译

时间:2015-10-29 09:31:59

标签: linux cross-compiling configure

在进行交叉编译时,我应该将哪个路径传递给--prefix选项:我应该在构建计算机上指定路径还是在目标平台上指定路径?

假设我将代码构建到/home/me/arm/build/target_fs/usr,之后我将文件复制到目标平台,它们将位于/usr。我应该使用--prefix=/home/me/arm/build/target_fs/usr还是--prefix=/usr然后使用make install DESTDIR=/home/me/arm/build/target_fs

我认为--prefix不是构建路径,而是运行环境的路径(即目标平台上的路径)。答案here让我觉得我是对的。但是有很多页面(例如,Cross-compiling FFmpeg for Raspbian--prefix=/my/path/were/i/keep/built/),人们在构建机器上使用--prefix的路径。所以我很困惑。

2 个答案:

答案 0 :(得分:5)

是的,你是对的, - prefix是工作环境的路径。只需使用--prefix = / usr。您可以通过在DESTDIR中安装来检查 make install 命令将在哪个文件夹路径中安装二进制文件。例如,如果您使用 - prefix = / usr make install DESTDIR = / home / me / arm / build / target_fs ,那么二进制文件将安装在该文件夹中/家/我/ ARM /编译/ target_fs / usr中。如果您只是运行 make install ,那么二进制文件将安装在您的前缀中,即“/ usr”中。

当您进行交叉编译时,我认为使用哪个前缀并不重要,因为无论如何您将在DESTDIR中安装,然后手动将二进制文件复制到目标。

答案 1 :(得分:-2)

你可能发现:

  

- prefix = dirname指定顶级安装目录。这是   建议的方法将工具安装到除以外的目录中   默认。顶级安装目录默认为   的/ usr /本地。

据我了解,您正在尝试为某个目标编译编译器。

在这种情况下,prefix将指定在构建计算机上make install命令之后安装编译器的目录。之后,您可以在那里使用编译器。

  

。我应该使用--prefix = / home / me / arm / build / target_fs / usr还是只使用--prefix = / usr然后make install DESTDIR = / home / me / arm / build / target_fs?

在你的情况下,prefix命令毫无意义。因为你是手工复制二进制文件。

您还可以在GCC官方网站上找到所有其他信息: https://gcc.gnu.org/install/finalinstall.html