크로스컴파일시 동적 라이브러리 사용과 관련하여 문의 드립니다.
x86 서버에서 arm 실행파일을 컴파일하고자 합니다.
glibc 라이브러말고 추가 동적 라이브러리(.so)를 사용한 프로그램을 arm으로 크로스컴파일 하는 경우,
아래와 같이 x86 라이브러리와 호환되지 않기 때문에 발생하는 에러를 볼 수 있었습니다.
" skipping incompatible /usr/lib/libSDL.so when searching for -lSDL "
. . . . .
따라서 arm으로 컴파일 된 라이브러리들이 필요하다고 판단하고 직접 모두 컴파일하기가 부담(?)스러워
arm 단말기에 있는 /usr/include 디렉토리와 /usr/lib 디렉토리를 PC로 복사해온 후 컴파일시 -L. -l 옵션을
사용하여 해당 라이브러리를 사용할 수 있도록 설정하였습니다.
참고로 arm 단말기에는 gcc와 관련 라이브러리들이 모두 설치되어 직접 컴파일이 가능한 상태였습니다.
그런데 이렇게 arm 단말기에 있는 모든 라이브러리와 헤더 파일들을 복사해서 컴파일을 해보면, 이번엔
사용하는 라이브러리에서 참조하고 있는 심볼들을 찾을 수 없다는 에러가 발생합니다.
" /home/namhw/n900_lib/libSDL_Pango.so: undefined reference to 'pango_layout_iter_free' "
. . . .
결론적으로 질문은 실행파일을 크로스 컴파일할 때 동적 라이브러리의 경우도 모두 크로스 컴파일한 후 사용해야 하는지?
아니면 다른 방법이 있는지 알고 싶습니다. 그럼 답변 부탁드립니다.
댓글 달기