我应该通过哪条路径--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 https://stackoverflow.com/questions/6078086/cross-compile-how-to-install-with-one-prefix-and-deploy-with-a-different-prefi让我觉得我是对的。但那里有很多页面(例如,为 Raspbian 交叉编译 FFmpeg https://trac.ffmpeg.org/wiki/CompilationGuide/RaspberryPi: --prefix=/my/path/were/i/keep/built/
)人们使用构建机器上的路径--prefix
。所以我很困惑。
是的,你是对的,--prefix 是工作环境的路径。只需使用 --prefix=/usr 即可。您可以检查哪个文件夹路径进行安装命令将通过安装在 DESTDIR 中来安装二进制文件。例如,如果您使用--前缀=/usr and make install DESTDIR=/home/me/arm/build/target_fs,那么二进制文件将安装在文件夹 /home/me/arm/build/target_fs/usr 中。如果你只是跑进行安装,那么二进制文件将安装在您的前缀中,即“/usr”中。
当您进行交叉编译时,我认为使用哪个前缀并不重要,因为无论如何您都会在 DESTDIR 中安装,然后将二进制文件手动复制到目标。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)