การอ้างอิงที่ไม่ได้กำหนดเพื่อ `glib_major_version '


0

คุณช่วยบอกฉันทีว่าฉันจะแก้ไขข้อผิดพลาด 'อ้างอิงที่ไม่ได้กำหนด' นี้ได้อย่างไรเมื่อทำการเชื่อมโยงบน 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 รูทราก 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 $ pwd

/ lib

แต่นั่นไม่ได้แก้ปัญหา ฉันควรทำอย่างไร?


คุณได้เพิ่ม-lglibตัวเลือกลิงเกอร์ของคุณเช่นgcc -lglibหรือld -lglibหรือLDFLAGS=-lglib?
Mikel

นี่เป็นรหัสของคุณเองหรือของคนอื่น? มันมี./configureสคริปต์หรือไม่? คุณต้องแสดงให้เราเห็นสิ่งที่นำไปสู่ข้อผิดพลาดเช่นคำสั่งที่คุณกำลังเรียกใช้
Mikel

คำตอบ:


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

คุณรวบรวมโปรแกรมของคุณเองหรือ บางทีคุณอาจต้องบอกให้ linker เชื่อมโยงglibด้วยการเพิ่ม-lglib-2.0ตัวเลือก

หากคุณกำลังทำงาน
gcc -o conftest conftest.cคุณควรทำ
gcc -o conftest -lglib-2.0 conftest.cแทน

หรือคุณสามารถเพิ่มการ-lglib-2.0LDFLAGS


คุณกำลังรวบรวมโปรแกรมของคนอื่นหรือไม่? 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

คำตอบขึ้นอยู่กับสิ่งที่คุณกำลังทำ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.