Score:2

Rofi: ข้อผิดพลาดในการค้นหาสัญลักษณ์: libgdk_pixbuf-2.0.so.0: สัญลักษณ์ที่ไม่ได้กำหนด: g_task_set_name แต่มันอยู่ที่นั่น!

ธง in

ฉันใช้ Ubuntu 20.04 LTS และฉันเพิ่งติดตั้ง Awesome Tiling WM ฉันพบปัญหา "ข้อผิดพลาดในการค้นหาสัญลักษณ์" เมื่อติดตั้ง Rofi แม้ว่าฉันจะพบสัญลักษณ์ในไลบรารีที่กำลังค้นหาอยู่ และฉันไม่รู้ว่าต้องทำอย่างไร

นี่คือสิ่งที่ฉันทำ:

ฉันติดตั้ง Rofi ด้วย

~$ sudo apt ติดตั้ง rofi

แต่เมื่อฉันเรียกใช้ฉันจะได้รับ

~$ โรฟี่
rofi: ข้อผิดพลาดในการค้นหาสัญลักษณ์: ~/anaconda3/envs/py37/lib/./libgdk_pixbuf-2.0.so.0: สัญลักษณ์ที่ไม่ได้กำหนด: g_task_set_name

อย่างไรก็ตามสัญลักษณ์ g_task_set_name เป็น ในห้องสมุด ณ สถานที่นั้น:

~$ nm -D --with- symbol-version ~/anaconda3/envs/py37/lib/./libgdk_pixbuf-2.0.so.0 | grep g_task_set_name
             คุณ g_task_set_name

(ฉันเคยเห็นที่อื่นว่าเวอร์ชันของสัญลักษณ์เหล่านี้มีความสำคัญ แต่ฉันไม่เห็นเวอร์ชันใด ๆ หลังจากสัญลักษณ์นี้ ฉันไม่รู้ว่ามันหมายความว่าอย่างไร สัญลักษณ์อื่น ๆ บางตัวในไลบรารีนั้นแสดงเวอร์ชันหลังชื่อ)

นอกจากนี้ เมื่อฉันเรียกใช้ rofi จากภายในโฟลเดอร์ที่มีไลบรารี่ ก็ไม่มีปัญหา:

~/anaconda3/envs/py37/lib$ rofi
Rofi ไม่แน่ใจว่าจะแสดงอะไร
โปรดระบุโหมดที่คุณต้องการแสดง

rofi - แสดง {โหมด}

เปิดใช้งาน modi ต่อไปนี้:
 * หน้าต่าง
 * วิ่ง
 * ssh

สามารถเปิดใช้งานต่อไปนี้:
 * ซีดีหน้าต่าง
 * ดรัน
 * คอมบิ
 * กุญแจ

ในการเปิดใช้งานโหมด ให้เพิ่มเข้าไปในรายการของ modi ในการตั้งค่า modi

ในที่สุดฉันต้องการเพิ่ม rofi ให้กับการเชื่อมโยงคีย์ใน AwesomeWM ดังนั้นวิธีแก้ไขคือให้เรียกใช้คำสั่งจากโฟลเดอร์นี้เสมอแต่ฉันไม่รู้ว่าจะทำอย่างไร

ในขณะที่พยายามแก้ปัญหาให้ละเอียดยิ่งขึ้น ฉันรู้สึกสับสนมากขึ้น ฉันพบไลบรารี่เดียวกันในอีกสองตำแหน่ง หนึ่งสำหรับ 32 บิตและอีกหนึ่งสำหรับ 64 บิต

~$ dpkg -S libgdk_pixbuf-2.0.so.0
libgdk-pixbuf2.0-0:amd64: /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0.4000.0
libgdk-pixbuf2.0-0:amd64: /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
libgdk-pixbuf2.0-0:i386: /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0
libgdk-pixbuf2.0-0:i386: /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0.4000.0

สัญลักษณ์ในทั้งสองห้องสมุดเหล่านี้:

~$ nm -D --with- symbol-versions /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 | grep g_task_set_
                 คุณ g_task_set_return_on_cancel
                 คุณ g_task_set_source_tag
                 คุณ g_task_set_task_data

(มีเอาต์พุตเหมือนกันสำหรับไลบรารีในโฟลเดอร์ i386) แต่ rofi ยังคงทำงานจากโฟลเดอร์ 64 บิต:

/usr/lib/x86_64-linux-gnu$ rofi
Rofi ไม่แน่ใจว่าจะแสดงอะไร
โปรดระบุโหมดที่คุณต้องการแสดง

    rofi - แสดง {โหมด}

...

แต่ไม่ใช่จากโฟลเดอร์ 32 บิต:

/usr/lib/i386-linux-gnu$ rofi
rofi: ข้อผิดพลาดในการค้นหาสัญลักษณ์: /home/martin/anaconda3/envs/py37/lib/./libgdk_pixbuf-2.0.so.0: สัญลักษณ์ที่ไม่ได้กำหนด: g_task_set_name

ฉันต้องการความช่วยเหลือเพื่อให้ Rofi ทำงานได้ โดยควรผ่านการแก้ปัญหา แต่วิธีแก้ปัญหาก็ทำได้ดีเช่นกัน

ฉันขอขอบคุณความช่วยเหลือเพียงเพื่อทำความเข้าใจว่าเกิดอะไรขึ้น ฉันไม่เข้าใจว่า rofi ดำเนินการเกี่ยวกับการค้นหาไลบรารีและสัญลักษณ์อย่างไร เหตุใดจึงไม่พบสัญลักษณ์ในไลบรารี และเหตุใด rofi จึงทำงานเฉพาะในสองในสามโฟลเดอร์ที่มีไลบรารี ทั้งๆ ที่มีเพียงหนึ่งในสองโฟลเดอร์เท่านั้นที่มีไลบรารีที่มีสัญลักษณ์ที่ถูกต้อง

ขอบคุณล่วงหน้า

N0rbert avatar
zw flag
คุณต้องแยก Anaconda ออกจาก PATH และ LD_LIBRARY_PATH แล้วลองเรียกใช้ "rofi" อีกครั้ง หรือเพียงแค่ปิดการใช้งานอนาคอนดาสำหรับหนึ่งรอบ
in flag
มันได้ผล! ขอบคุณ! ฉันไปที่ .bashrc และลบบรรทัดที่ฉันเพิ่มโฟลเดอร์อนาคอนดาทั้งหมดไปที่ LD_LIBRARY_PATHแต่ตอนนี้ฉันคิดว่าจะมีแพ็คเกจ python ที่ใช้เส้นทางไลบรารีเหล่านั้นและจะไม่พบอีก อาจแก้ไขได้ด้วยการเพิ่มเส้นทางไลบรารีเหล่านั้นไปยัง PYTHONPATH แทน
N0rbert avatar
zw flag
ฉันไม่แน่ใจเกี่ยวกับ PYTHONPATH ดังนั้นฉันจึงเขียนคำตอบตามความคิดเห็นด้านบน
Score:1
ธง zw

คุณต้องแยกอนาคอนด้าออกจาก $เส้นทาง และ $LD_LIBRARY_PATH ตัวแปรสภาพแวดล้อมแล้วลองทำงานอีกครั้ง โรฟี่.

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา