Saya sedang membangun program C ++ sederhana dan saya ingin sementara mengganti sistem perpustakaan bersama yang disediakan dengan versi yang lebih baru, untuk pengembangan dan pengujian.
Saya mencoba mengatur variabel LD_LIBRARY_PATH tetapi tautannya (ld) gagal dengan:
/ usr / bin / ld: tidak dapat menemukan -lyaml-cpp
Saya berharap itu berfungsi karena menurut halaman manual ld:
Linker menggunakan jalur pencarian berikut untuk menemukan perpustakaan bersama yang diperlukan: ... Untuk linker asli, isi variabel lingkungan "LD_LIBRARY_PATH" ...
Saya kemudian mencoba mengatur LIBRARY_PATH, dan itu berhasil.
Menurut manual GCC:
Nilai LIBRARY_PATH adalah daftar direktori yang dipisahkan oleh titik dua, seperti PATH. Ketika dikonfigurasikan sebagai kompiler asli, GCC mencoba direktori yang ditentukan saat mencari file linker khusus, jika tidak dapat menemukannya menggunakan GCC_EXEC_PREFIX. Menautkan menggunakan GCC juga menggunakan direktori ini ketika mencari pustaka biasa untuk opsi -l (tetapi direktori yang ditentukan dengan -L didahulukan).
Seperti yang disarankan oleh manual (GCC), LIBRARY_PATH berfungsi karena saya terhubung dengan GCC.
Tapi..
- Karena saya terhubung dengan gcc mengapa ld dipanggil, seperti pesan kesalahan menyarankan?
- Apa gunanya memiliki dua variabel yang melayani tujuan yang sama? Apakah ada perbedaan lain?