Tôi đang xây dựng một tệp C++ trên Linux. Các liên kết thực thi vào một số thư viện tăng cường.lỗi khi tải thư viện được chia sẻ: libboost_system.so.1.45.0: không thể mở tệp đối tượng được chia sẻ: Không có tệp hoặc thư mục nào như vậy
Đây là đầu ra khi tôi cố gắng để chạy nhị phân:
[email protected]:~/work/dev/c++/projects/testfgci/dist/Debug/GNU-Linux-x86$ ./testfgci
./testfgci: error while loading shared libraries: libboost_system.so.1.45.0: cannot open shared object file: No such file or directory
sau đó tôi chạy ldd trên nhị phân để kiểm tra phụ thuộc:
[email protected]:~/work/dev/c++/projects/testfgci/dist/Debug/GNU-Linux-x86$ ldd testfgci
linux-gate.so.1 => (0x00380000)
libboost_system.so.1.45.0 => not found
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00b50000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x005f6000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x0099a000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x001b3000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x00110000)
/lib/ld-linux.so.2 (0x00ea2000)
Tôi không chắc chắn lý do tại sao liboos_system.sl Không tìm thấy .1.45.0 SO. Tôi đã xây dựng nó thành công sớm hơn một chút vào ngày hôm nay. Bất cứ ai có thể giải thích?
Có thể là khi xây dựng, bạn đang đi qua những lá cờ để trình biên dịch cho các thư viện liên kết bổ sung, nhưng khi bạn muốn chạy chương trình, các thư viện Boost don' t tồn tại trong các đường dẫn linker. Có thể trùng lặp [liên kết vấn đề trong thư viện] (http://stackoverflow.com/questions/4568187/linking-problem-in-libraries) – birryree
Tôi đã tìm thấy câu trả lời. Tôi đã phải thêm đường dẫn đến LD_LIBRARY_PATH của tôi và sau đó xuất nó. Mã nhị phân chạy, nhưng báo cáo lỗi (Hệ thống lỗi: 9: Bộ mô tả tệp không hợp lệ).Tôi sẽ phải hoặc là am hiểu câu hỏi này để phản ánh điều đó, hoặc hỏi một câu hỏi mới – skyeagle