Подскажите, пожалуйста, как я могу устранить эту ошибку «неопределенная ссылка» при линковке в 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 статус выхода

Я добавил 'export LD_LIBRARY_PATH =/usr/lib:/lib:$ LD_LIBRARY_PATH' в мой .bashrc.

$ ls -la libgl *.*

lrwxrwxrwx 1 root root 23 2010-12-17 18:29 libglib-2.0.so.0 -> libglib-2.0.so.0.2600.0

-rw-r - r-- 1 root root 842208 2010-09-27 16:16 libglib-2.0.so.0.2600.0

/lib $ pwd

/ Lib

Но это не решает проблему. Что я должен делать?

1 ответ1

0

Какую команду вы используете для его компиляции?

Есть ли другие ошибки, приводящие к этой ошибке?


У меня та же версия файла, что и у вас, и в ней есть эти символы.

$ 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 .

Ответ зависит от того, что вы делаете.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .