ฉันกำลังสร้างโปรแกรม C ++ แบบง่ายและฉันต้องการแทนที่ระบบที่ให้ไลบรารี่ที่ใช้ร่วมกันกับเวอร์ชันที่ใหม่กว่าชั่วคราวสำหรับการพัฒนาและการทดสอบ
ฉันพยายามตั้งค่าตัวแปร LD_LIBRARY_PATH แต่ตัวเชื่อมโยง (ld) ล้มเหลวด้วย:
/ usr / bin / ld: ไม่สามารถหา -lyaml-cpp
ฉันคาดว่าจะทำงานได้เพราะตามหน้า man ld:
ตัวลิงก์ใช้พา ธ การค้นหาต่อไปนี้เพื่อค้นหาไลบรารีแบบแบ่งใช้ที่จำเป็น: ... สำหรับตัวเชื่อมโยงแบบดั้งเดิมเนื้อหาของตัวแปรสภาพแวดล้อม "LD_LIBRARY_PATH" ...
ฉันลองตั้ง LIBRARY_PATH แล้วก็ใช้งานได้
ตามคู่มือ GCC:
ค่าของ LIBRARY_PATH เป็นรายการไดเร็กทอรีที่คั่นด้วยโคลอนเหมือนกับ PATH เมื่อกำหนดค่าเป็นคอมไพเลอร์เนทีฟ GCC จะพยายามไดเรกทอรีที่ระบุไว้เมื่อค้นหาไฟล์ลิงเกอร์พิเศษหากไม่สามารถค้นหาได้โดยใช้ GCC_EXEC_PREFIX การลิงก์โดยใช้ GCC ยังใช้ไดเรกทอรีเหล่านี้เมื่อค้นหาไลบรารีสามัญสำหรับตัวเลือก -l (แต่ไดเรกทอรีที่ระบุด้วย -L จะมาก่อน)
ตามที่แนะนำ (GCC) แนะนำ LIBRARY_PATH ทำงานได้เพราะฉันเชื่อมโยงกับ GCC
แต่..
- เนื่องจากฉันเชื่อมโยงกับ gcc เหตุใดจึงมีการเรียก ld เนื่องจากข้อความแสดงข้อผิดพลาดแนะนำ
- อะไรคือจุดของการมีตัวแปรสองตัวที่ให้บริการเพื่อจุดประสงค์เดียวกัน มีความแตกต่างอื่น ๆ อีกไหม?