요약 :은 라이브러리 (.so를) 동적으로 다른 컴파일러로 만든 다른 라이브러리를로드 할 수
나는 하나의 라이브러리는 동적으로 또 다른로드와 컴파일러의 차이가 인 경우 내가 궁금하네요에 문제가 오전 근본 원인.
문제점 세부 사항 : libgbm.so에
내 응용 프로그램 링크는 동적으로 libpvrGBMWSEGL.so를로드 한 후 gbm_backend 기능을 요청합니다.
#libgbm.so
module = dlopen("/usr/lib/libpvrGBMWSEGL.so", RTLD_NOW | RTLD_GLOBAL)
dlsym(module, entrypoint)
제공된 기호를 사용하려고하면 세그먼트 오류가 발생합니다.
분석 : libpvrGBMWSEGL.so는 고유 이진 BLOB으로 제공된다
.
: 빠른 분석은 리나 GCC와 함께 동적으로 6.4.0> strings libgbm.so | grep GCC
GCC: (Buildroot 2017.11-git-00884-g7af8140-dirty) 6.4.0
질문 Buildroot GCC로 구축했다 호출 5.3-2016.02
> strings libpvrGBMWSEGL.so | grep GCC
GCC: (Linaro GCC 5.3-2016.02) 5.3.1 20160113
한편 도서관 libgbm를 만들 것을 보여줍니다
이 두 라이브러리가 내가 사용하는 방식으로 호환되어야합니까?