1
나는 리눅스에서 공유 라이브러리를 컴파일했다. 라이브러리가 생성 된 후 나는 ldd -r libfoo.so
을 실행합니다. 그것은공유 라이브러리의 정의되지 않은 심볼
내 오류 메시지는 다음과 같습니다 정의되지 않은 기호 오류와 함께
ldd -r libcaffe.so
linux-vdso.so.1 => (0x00007fffdd541000)
/opt/alisentry/$LIB/alisentry_connect.so =>
/opt/alisentry/lib64/alisentry_connect.so (0x00007ff8777bc000)
/opt/alisentry/$LIB/alisentry_exec.so =>
/opt/alisentry/lib64/alisentry_exec.so (0x00007ff8775b8000)
/opt/alisentry/$LIB/alisentry_kill.so =>
...
libc.so.6 => /lib64/libc.so.6 (0x00007ff876291000)
/lib64/ld-linux-x86-64.so.2 (0x0000003671800000)
undefined symbol:
_ZN2cv12mulSpectrumsERKNS_11_InputArrayES2_RKNS_12_OutputArrayEi
(./libcaffe.so)
undefined symbol: _ZN2cv17getOptimalDFTSizeEi (./libcaffe.so)
undefined symbol: _ZN2cv3dftERKNS_11_InputArrayERKNS_12_OutputArrayEii (./libcaffe.so)
내 질문이 공유 라이브러리가 컴파일 및 링크를 완료한다는 것입니다. 왜 여전히 정의되지 않은 기호가 있습니까? 연결 단계에서 발생하지 않는 이유는 무엇입니까?
아마, 전제 조건으로 링크 될 다른 lib가 필요하기 때문입니다. – LPs
다른 lib가 필요한 경우. 컴파일하는 동안 오류가 발생해야한다고 생각합니다. – Samuel