Which path should I pass to the --prefix
option when doing cross compiling: should I specify the path on my build machine or the path on the target platform?
Suppose I build the code into /home/me/arm/build/target_fs/usr
, after that I copy the files into my target platform where they will be located at /usr
. Should I use --prefix=/home/me/arm/build/target_fs/usr
or just --prefix=/usr
and then make install DESTDIR=/home/me/arm/build/target_fs
?
I thought that the --prefix
is not the path for build but the path for running environment (i.e. the path on target platform). The answers here makes me think that I'm right. But there are many pages out there (for example, Cross-compiling FFmpeg for Raspbian: --prefix=/my/path/were/i/keep/built/
) where people use the path on build machine for the --prefix
. So I'm confused.
As you may found:
As far as I understand you are trying to compile a compiler for some target.
In this case
prefix
will specify directory when the compiler will be installed aftermake install
command on build machine. After it you can take a compiler there.In your case
prefix
command have no sense. Because you are copy binaries by hands.Also you can find all other info on GCC official site: https://gcc.gnu.org/install/finalinstall.html
Yes you are right, --prefix is the path for working environment. Just use --prefix=/usr. You can check in which folder path make install command will install your binary by installing in DESTDIR. For example if you use --prefix=/usr and make install DESTDIR=/home/me/arm/build/target_fs, then the binaries will be installed in the folder /home/me/arm/build/target_fs/usr. And If you just run make install, then the binary will be installed in your prefix i.e. in "/usr".
As you are cross-compiling, I think it doesn't matter which prefix you use, because anyways you will be installing in DESTDIR and then copying the binary files manually to your target.