Ubuntu 10.10에 연결할 때 이 '정의되지 않은 참조' 오류를 어떻게 해결할 수 있는지 알려주실 수 있나요?
conftest.c:(.text+0x4): `glib_major_version'에 대한 정의되지 않은 참조
conftest.c:(.text+0xd): `glib_minor_version'에 대한 정의되지 않은 참조
conftest.c:(.text+0x16): `glib_micro_version'에 대한 정의되지 않은 참조
Collect2: ld가 종료 상태 1개를 반환했습니다.
내 .bashrc에 'export LD_LIBRARY_PATH=/usr/lib:/lib:$LD_LIBRARY_PATH'를 추가했습니다.
$ ls -la libgl*.*
lrwxrwxrwx 1 루트 루트 23 2010-12-17 18:29 libglib-2.0.so.0 -> libglib-2.0.so.0.2600.0
-rw-r--r-- 1 루트 루트 842208 2010-09-27 16:16 libglib-2.0.so.0.2600.0
/lib $ 비밀번호
/lib
그러나 그것은 문제를 해결하지 못합니다. 어떻게 해야 하나요?
답변1
컴파일하기 위해 어떤 명령을 실행하고 있습니까?
이 오류를 발생시키는 다른 오류가 있습니까?
나는 당신과 동일한 버전의 파일을 가지고 있으며 그 기호가 있습니다.
$ ls -l libglib*
lrwxrwxrwx 1 root root 23 2010-12-05 06:03 libglib-2.0.so.0 -> libglib-2.0.so.0.2600.0
-rw-r--r-- 1 root root 842208 2010-09-28 09:16 libglib-2.0.so.0.2600.0
$ nm -D libglib-2.0.so.0.2600.0 | grep version
00073730 T glib_check_version
000c849c R glib_major_version
000c84a4 R glib_micro_version
000c84a0 R glib_minor_version
자신만의 프로그램을 컴파일하고 있나요? 아마도 옵션 glib
을 추가하여 링커에 링크하도록 지시하면 될 것입니다 -lglib-2.0
.
을 실행 중인 경우 대신
gcc -o conftest conftest.c
수행해야 합니다
gcc -o conftest -lglib-2.0 conftest.c
.
또는 -lglib-2.0
에 추가할 수 있습니다 LDFLAGS
.
다른 사람의 프로그램을 컴파일하고 있습니까? 을 사용하고 있을 수도 있습니다 pkgconfig
. /usr/local
헷갈리는 내용 이 있을 수도 있습니다 .
다른 프로그램이나 라이브러리를 직접 설치하셨나요? 아마도 에 자체적으로 설치된 것이 있습니까 /usr/local/lib
?
은 무슨 cat /usr/lib/pkgconfig/glib*
뜻인가요? 은
무슨 cat /usr/local/lib/pkgconfig/glib*
뜻인가요?
LD_LIBRARY_PATH
을 포함하려면 값을 변경해야 할 수도 /usr/local/lib
있고, 을 변경 PKG_CONFIG_PATH
하거나 에 일부 옵션을 추가해야 할 수도 있습니다 ./configure
.
대답은 당신이 무엇을하고 있는지에 따라 달라집니다.