2011-11-18 3 views
0

나는 이국적인 버전의 혼합으로 동적 라이브러리를 컴파일하려고합니다. 먼저 로봇 안의 ADM 지오 코딩을 위해 gcc-4.3.3을 사용하는 특정 툴체인을 사용하여 크로스 컴파일하고 헤더와 링크 라이브러리를 찾아내는 고유 한 디렉토리 트리를 가지고 있지만 많이 사용하고 있습니다. boost :: numeric, blas, jrl-dynamics라는 로봇 동적 및 키네 마틱 모델 라이브러리와 같은 숫자 라이브러리는 링커 오류를 보냅니다. 내가 컴파일 할 때링커 오류를 이해하는 방법

, 첫째, 모든 오브젝트 파일 (나는 툴체인을 해킹 때문에 기호 연결을 포함) 문제없이 생성되지만 시간 링크에서 내가 좋아하는 오류를 가지고 :

/usr/lib/liblapack.so.3gf.0: undefined reference to `[email protected]_1.0' 
/usr/lib/liblapack.so.3gf.0: undefined reference to `[email protected]_1.0' 

/usr/lib/libjrl-dynamics.so.1.19.3-42-g8c6f: undefined reference to `std::ctype<char>::_M_widen_init() [email protected]_3.4.11' 

링커가 _gfortran_string_len_trim y와 같은 기호를 찾도록하고 싶습니다. gfortran의 요청 된 버전은 gfortran2입니다. 실제로 reafelf 명령을 사용하면 lapack이 요청한 모든 simbols를 찾을 수 있습니다. 하지만 -L/mypath/gfortran2는 작동하지 않습니다 !! 그리고 나는 같은 오류가있다. 나는 링커 오류에서 @를 의미하는 것을 알고 싶습니다. elf 파일은 링커가 심볼을 검색하는 링커를 말합니다.

답변

0

심볼의 @versionning과 관련이 있다고 생각하지만, 그에 대해서는별로 익숙하지 않습니다. 또한보십시오 dlvsym

관련 문제