在进行交叉编译时,应该将哪个path传递给--prefix
选项:我应该在生成机器上指定path还是在目标平台上指定path?
假设我将代码构build到/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
不是构build的path,而是运行环境的path(即目标平台上的path)。 这里的答案让我觉得我是对的。 但是在那里有许多页面(例如, 交叉编译FFmpeg for Raspbian :– --prefix=/my/path/were/i/keep/built/
),人们在构build机器上使用path--prefix
。 所以我很困惑。
是的你是对的,–prefix是工作环境的路径。 只要使用–prefix = / usr。 您可以通过在DESTDIR中安装来检查哪个文件夹路径make install命令将安装您的二进制文件。 例如,如果您使用–prefix = / usr并且安装DESTDIR = / home / me / arm / build / target_fs ,则二进制文件将安装在/ home / me / arm / build / target_fs / usr文件夹中。 而如果你只是运行make install ,那么二进制文件将被安装在你的前缀,即“/ usr”中。
在交叉编译时,我认为使用哪个前缀并不重要,因为无论如何,您将在DESTDIR中进行安装,然后将二进制文件手动复制到目标。
你可能会发现:
–prefix = dirname指定顶层安装目录。 这是将工具安装到非默认目录的推荐方法。 顶层安装目录默认为/ usr / local。
据我所知,你正试图编译一个目标的编译器。
在这种情况下, prefix
将指定编译器将在生成计算机上的make install
命令之后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