링크된 라이브러리가 존재하더라도 정의되지 않은 참조

링크된 라이브러리가 존재하더라도 정의되지 않은 참조

소스에서 VTK를 컴파일하려고 하는데 다음 오류가 발생합니다. 저는 Fedora 27, 커널 버전 4.14.11-300.fc27.x86_64를 실행하고 있습니다.

/usr/lib64/libSM.so: undefined reference to `uuid_generate@UUID_1.0'
/usr/lib64/libSM.so: undefined reference to `uuid_unparse_lower@UUID_1.0'

ldd /usr/lib64/libSM.so프로그램

 $ldd /usr/lib64/libSM.so
    linux-vdso.so.1 (0x00007ffd4998b000)
    libICE.so.6 => /lib64/libICE.so.6 (0x00007f3aa36ff000)
    libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f3aa34fa000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f3aa3115000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f3aa3b23000)

libuuid.so.1의 기호 표시를 자세히 살펴보세요.

$objdump -T /lib64/libuuid.so.1 | grep 'uuid_generate$'
0000000000002370 g    DF .text  0000000000000087  UUID_1.0    uuid_generate

$objdump -T /lib64/libuuid.so.1 | grep 'uuid_unparse_lower'
0000000000002710 g    DF .text  0000000000000002  UUID_1.0    uuid_unparse_lower

의 출력은 ldconfig다음과 같습니다

$sudo ldconfig -p | grep libuuid

libuuid.so.1 (libc6,x86-64) => /lib64/libuuid.so.1
    libuuid.so.1 (libc6) => /lib/libuuid.so.1


$ sudo ldconfig -p | grep libSM
    libSM.so.6 (libc6,x86-64) => /lib64/libSM.so.6
    libSM.so.6 (libc6) => /lib/libSM.so.6
    libSM.so (libc6,x86-64) => /lib64/libSM.so

여기서 무슨 일이 일어나고 있는지 잘 모르겠습니다. 누구든지 도와줄 수 있나요?

감사합니다 센틸

답변1

링크에 -luuid를 추가해 보세요. *.so 파일에 대해 제가 이해한 바에 따르면 이 작업을 수행할 필요는 없지만 제 경우에는 비슷한 문제가 해결되었습니다.

관련 정보