undefinierter Verweis auf „glib_major_version“

undefinierter Verweis auf „glib_major_version“

Können Sie mir bitte sagen, wie ich diesen Fehler „undefinierte Referenz“ beim Verknüpfen unter Ubuntu 10.10 beheben kann?

conftest.c:(.text+0x4): undefinierter Verweis auf „glib_major_version“

conftest.c:(.text+0xd): undefinierter Verweis auf „glib_minor_version“

conftest.c:(.text+0x16): undefinierter Verweis auf „glib_micro_version“

collect2: ld hat 1 Exit-Status zurückgegeben

Ich habe „export LD_LIBRARY_PATH=/usr/lib:/lib:$LD_LIBRARY_PATH“ zu meiner .bashrc hinzugefügt.

$ ls -la libgl*.*

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

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

/lib $ pwd

/lib

Das Problem ist damit aber nicht gelöst. Was soll ich tun?

Antwort1

Welchen Befehl führen Sie aus, um es zu kompilieren?

Gibt es noch andere Fehler, die zu diesem Fehler geführt haben?


Ich habe dieselbe Version der Datei wie Sie und sie enthält diese Symbole.

$ 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

Kompilieren Sie Ihr eigenes Programm? Vielleicht müssen Sie dem Linker nur sagen, dass er eine Verknüpfung herstellen soll, glibindem Sie die -lglib-2.0Option hinzufügen.

Wenn Sie ausführen
gcc -o conftest conftest.c, sollten Sie
gcc -o conftest -lglib-2.0 conftest.cstattdessen Folgendes tun.

Oder Sie können -lglib-2.0hinzufügen LDFLAGS.


Kompilieren Sie das Programm einer anderen Person? Es könnte verwendet werden pkgconfig. Es könnte darin Dinge geben, /usr/localdie verwirrend sind.

Haben Sie selbst andere Programme oder Bibliotheken installiert? Vielleicht etwas, das sich selbst installiert hat /usr/local/lib?

Was cat /usr/lib/pkgconfig/glib*sagt man?
Was cat /usr/local/lib/pkgconfig/glib*sagt man?

Möglicherweise müssen Sie den Wert von ändern , LD_LIBRARY_PATHum einzuschließen /usr/local/lib, oder vielleicht ändern PKG_CONFIG_PATHoder einige Optionen zu hinzufügen ./configure.

Die Antwort hängt davon ab, was Sie tun.

verwandte Informationen