--with-sysroot用来指定系统的root。该选项主要用于新系统(比如LFS)构建或交叉编译。比如你的LFS的root在/mnt/lfs,那么configure时指定--with-sysroot=/mnt/lfs,编译器就会使用/mnt/lfs上的header和lib,而不是host上的。交叉编译器也会设定sysroot,避免搜索默认的header和lib路径。可以写个最小程序然后gcc -v main.c,如果编译器的sysroot非默认,就会打印出sysroot路径。
prefix用来指定make install的安装目录。比如你不想把软件安装在/(/bin和/lib)或/usr(/usr/bin和/usr/lib),而是想安装到/usr/local(/usr/local/bin和/usr/local/lib),就可以指定--prefix=/usr/local。
sysroot和prefix组合使用,其对路径的效果将叠加。