Gcc-4.1.1 Cross Compiler Build중에 의문사항..
개발툴들의 install 위치는 /opt/cross-tool/cdk에 host(i686-pc-linux-gnu)환경에 필요한 것들을 설치하고, /opt/cross-tool/cdkroot에 target file system을 위치 시킬 예정입니다. 그래서 나중에 Embedded Linux의 Root File System을 build시에 cdkroot에 있는 것들을 이용해서 만들려고 합니다.
다음 단계로 build & install했습니다.
1. Linux kernel header를 생성해서 /opt/cross-tool/cdkroot/include에 copy해 놓았습니다.
2. binutils-2.17을 다음처럼 configure해서 make 했습니다.
# configure --prefix=/opt/cross-tool/cdk --host=i686-pc-linux-gnu --target=mipsel-unknown-linux-gnu --disable-nls --disable-multilib \
--enable-shared --without-fp --with-sysroot=/opt/cross-tool/cdkroot
3. GCC-4.1.1을 다음 처럼 configure해서 make 했습니다.
# configure --prefix=/opt/cross-tool/cdk --host=i686-pc-linux-gnu --target=mipsel-unknown-linux-gnu --disable-multilib \
--disable-nls --disable-shared --disable-threads --enable-languages=c --without-fp --enable-target-optspace \
--with-sysroot=/opt/cross-tool/cdkroot
그런데, Error가 발생합니다. /opt/cross-tool/cdkroot/usr/include에서 header file을 찾을수 없다는 error입니다.
그래서, --with-headers=/opt/cross-tool/cdkroot/include를 추가했습니다. 그런데, 여전히 동일한 error로 진척이 안됩니다.
다시한번, 이번에는 --with-sysroot를 제거하고 설치했더니, 이번에 header가 없다는 이야기이긴 한데, 이번에는 다른 header file 문제라고
나옵니다.
고민중에 cross-lfs.org project를 보니, --with-local-prefix를 지정하라고 되어 있습니다.
여기서 질문은, 제가 알고 있기로 Cross Compiler build시에 --with-sysroot는 target file system tree의 root를 지정하는거라고 알고 있습니다.
그런데, local system header에 관련된 path가 아마도 /usr/include로 되어있는 모양입니다.
그렇다면, --with-local-prefix와 --with-sysroot의 차이점은 무엇입니까? 그리고, 같이 지정하여 사용할 수 있는 것입니까?
제가 지정한 configure에 문제가 있는 것인가요? glibc와 gcc final build로 넘어가지도 못하고 이러고 있습니다.
아시는 분들 도움좀..
댓글 달기