(요즘은 커널을 컴파일해서 쓰는 경우가 거~~~~~의 없고, 개발을 하더라도 주로 임베디드 타겟일 경우를 제외하곤 없지만......)
리눅스 커널 컴파일 하려는데 별짓을 다해도 make menuconfig 시 ncurses 라이브러리 때문에 다음과 같은 오류를 떨구며 링크가 안되는 상황이 발생할 때가 있다..
/usr/lib/gcc/i686-redhat-linux/4.4.2/../../../libncursesw.a(hashmap.o): In function `update_cost_from_blank':
(.text+0x87): undefined reference to `stdscr'
/usr/lib/gcc/i686-redhat-linux/4.4.2/../../../libncursesw.a(hashmap.o): In function `update_cost_from_blank':
(.text+0x96): undefined reference to `curscr'
보통은 ncurses-devel이나 ncurses-static을 깔아주면 대략 컴파일에 성공하지만.. 그렇지 않은 경우가 있다.
첫 대안은... make oldconfig.... 음 해본 사람은 안다. 패스....
다른 대안으로는 make xconfig 또는 make gconfig... 물론 qt개발 킷이나 gtk 개발 킷을 요구하지만 대략 깔아주면 ok.. x환경에서 마우스로 클릭하면서 설정이 가능..
그런데, 이도 저도 안되거나 도저히 적응이 안되는 경우, 또는 텍스트 터미널 작업이라 xconfig를 사용할 수 없는 경우, 그리고 다른 대안을 쓸 수 있지만 기어이 menuconfig를 봐야겠다는 경우...가 있다.
본인의 경우 xconfig의 컴파일에 성공했으나.. 당췌 눈에 익지 않아서 menuconfig에 집착함 ㅡㅡ;;
일부 호스트 시스템의 문제(?)로 보이는데..
본인이 사용하는 F12는 물론 F11, 또는 우분투 계열 등에서 menuconfig에서 사용되는 ncurses라이브러리를 static버전 및 dev킷을 모두 깔아줬음에도 링크에 실패하는 경우가 있다.
이때는 링크를 static이 아닌 shared 라이브러리를 사용하도록 하면 해결이 된다.
vi scripts/Makefile.host 를 열어서 "-static"을 찾아 모두 제거 한다.
다시 make menuconfig를 시도해본다.
끄읏~~~~















최근 덧글