Tôi đang cố gắng biên dịch một trong các dự án được tìm thấy tại đây Bộ điều hợp giao diện USB-I2C/SPI/GPIO.Không thể mở tệp đối tượng được chia sẻ
Tôi đã tải xuống gói i2c_bridge-0.0.1-rc2.tgz
. Tôi đã cài đặt libusb
và dường như hoạt động tốt mà không có vấn đề gì. Tôi đi vào thư mục i2c_bridge-0.0.1-rc2/
và thực hiện. Điều đó biên dịch. Tôi chuyển vào thư mục i2c_bridge-0.0.1-rc2/i2c
và thực hiện. Nó biên dịch và cho tôi ./i2c
. Tuy nhiên, khi tôi chạy nó, nó nói error while loading shared libraries: libi2cbrdg.so: cannot open shared object file: No such file or directory
Makefile in i2c_bridge-0.0.1-rc2/i2c
có thư mục thư viện là ../
. libi2cbrdg.so
nằm trong thư mục này (i2c_bridge-0.0.1-rc2
). Tôi cũng đã sao chép tệp này vào /usr/local/lib
. Một ls
của thư mục i2c_bridge-0.0.1-rc2/
là
i2c i2cbrdg.d i2cbrdg.o libi2cbrdg.a Makefile tests
i2cbrdg.c i2cbrdg.h INSTALL libi2cbrdg.so README u2c4all.sh
(Đó i2c
là một thư mục)
Nếu tôi sudo ./i2c
, nó vẫn mang lại cho tôi những vấn đề.
Tôi phải lấy các tùy chọn -Werror
và -noWdecrepated
(chính tả?) Trong tất cả các tệp makefiles để làm cho chúng biên dịch, nhưng điều đó không ảnh hưởng đến điều này?
Điều gì khác cần thiết để tìm tệp .so
? Nếu bất cứ ai có thể giúp tôi tìm ra điều gì sai, tôi sẽ rất biết ơn. Nếu cần thêm thông tin, tôi có thể đăng nó.
LD_LIBRARY_PATH có phải là tất cả thư viện của tôi không? Vì vậy, nếu tôi làm điều đó lệnh, nó sẽ mess up những thứ khác cho đến khi tôi thay đổi nó trở lại? Làm thế nào để tôi xem nó được thiết lập cho đến bây giờ? – Sterling
Đó là một biến môi trường. Vì vậy, bạn có thể kiểm tra nó thông qua "echo $ LD_LIBRARY_PATH" và, cách nó được thiết lập trong dòng lệnh, là cục bộ cho quá trình i2c và các quy trình con của nó. – thiton
Không phải câu hỏi của tôi, nhưng cảm ơn điều này đã giúp giải quyết vấn đề chính xác của tôi – Rich