임베디드 개발하다보면, 크로스 컴파일은 밥먹듯 하는데..
가끔 황당한 오류가 바로 ld 관련 오류이다.

ntfs_3g_usermap-usermap.o: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make[2]: *** [ntfs-3g.usermap] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

이녀석은 ntfs-3g 라는 녀석인데, 크로스 컴파일을 하려니 이러한 오류가 발생했다.
조금은 뜬금없기도 하고, 옵션도 문제가 없는데 왜 이러냐면은..


원인 : 크로스 컴파일 이전에 컴파일 되는지 확인하기 위해 호스트에서(i686-linux) 컴파일을 이미 했기 때문!
해결 : 머. make clean 한번 하고 ./configure 다시 해주고..

결론 : 잊지말자 make clean!



사족 : File in wrong format 인건, 당연히 링커가 아키텍쳐가 다른 파일을 조작하려 하니 포맷을 알리가 ㅋㅋ
         이런 경우에는 갸우뚱 하지 말고 make clean 하고 다시 컴파일 하는게 상책이다.
Posted by 구차니

댓글을 달아 주세요

  1. 포스팅 속도가 빛의 속도이시군요. ㅎㅎㅎ

    2010.01.06 15:21 [ ADDR : EDIT/ DEL : REPLY ]
    • 시꾸랏 ㅋㅋ
      일하다 막히면 하나씩 쓰는거라니까 그러네 ㅋㅋ

      2010.01.06 15:26 [ ADDR : EDIT/ DEL ]
  2. 포스팅의 수준이 너무 높아 제가 이해 하기에 어려움이 있습니다.

    Happy New Year !

    2010.01.06 19:58 [ ADDR : EDIT/ DEL : REPLY ]