Próbuję skompilować jeden z projektów znalezionych tutaj Adapter interfejsu USB-I2C/SPI/GPIO.Nie można otworzyć pliku udostępnionego obiektu
Pobrałem pakiet i2c_bridge-0.0.1-rc2.tgz
. Zainstalowałem libusb
i wydawało się, że wszystko idzie dobrze bez żadnych problemów. Przechodzę do katalogu i2c_bridge-0.0.1-rc2/
i robię. To kompiluje. Przechodzę do folderu i2c_bridge-0.0.1-rc2/i2c
i robię. Kompiluje się i daje mi ./i2c
. Jednak po uruchomieniu jest to plik Makefile w katalogu , który ma katalog biblioteki jako ../
. libi2cbrdg.so
znajduje się w tym katalogu (i2c_bridge-0.0.1-rc2
). Również skopiowałem plik do /usr/local/lib
. ls
katalogu i2c_bridge-0.0.1-rc2/
jest
i2c i2cbrdg.d i2cbrdg.o libi2cbrdg.a Makefile tests
i2cbrdg.c i2cbrdg.h INSTALL libi2cbrdg.so README u2c4all.sh
(To i2c
jest katalogiem)
Gdybym sudo ./i2c
, to wciąż daje mi ten problem.
Musiałem usunąć opcje -Werror
i -noWdecrepated
(pisowni?) We wszystkich plikach makefile, aby je skompilować, ale to nie powinno mieć na to wpływu?
Co jeszcze jest konieczne, aby znaleźć plik .so
? Jeśli ktokolwiek może mi pomóc dowiedzieć się, co jest nie tak, byłbym bardzo wdzięczny. Jeśli potrzebujesz więcej informacji, mogę to opublikować.
Czy LD_LIBRARY_PATH dla wszystkich moich bibliotek? Więc jeśli zrobię to polecenie, to zepsuje inne rzeczy, dopóki go nie zmienię? Jak mogę sprawdzić, do czego jest ustawiony? – Sterling
Jest to zmienna środowiskowa. Możesz to sprawdzić za pomocą "echo $ LD_LIBRARY_PATH", a sposób, w jaki jest ustawiony w linii poleceń, jest lokalny dla procesu i2c i jego podprocesów. – thiton
Nie moje pytanie, ale dzięki temu pomogło rozwiązać mój dokładny problem – Rich