brakujące błędy bibliotek C podczas uruchamiania gedit

2

Dołączyłem to na końcu ~/.bashrc

LD_LIBRARY_PATH=/usr/local/MATLAB/MATLAB_Runtime/v901/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v901/bin/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v901/sys/os/glnxa64:

export LD_LIBRARY_PATH

To zdjęcie mówi wszystko. Czy ktoś mógłby mi powiedzieć, jak to naprawić?

wprowadź opis zdjęcia tutaj

Teedeez
źródło
To wygląda na zmienną ldconfiglub LD_LIBRARY_PATHzmienną środowiskową. Możesz uruchomić, ldconfig -p | grep -i matlababy sprawdzić, czy jest to związane z programem ldconfig, lub sprawdzić pliki profilu lub bashrc, które mogłyby to ustawić LD_LIBRARY_PATH. Może pamiętasz, jak skonfigurowałeś matlab ... i odwróciłeś to?
Thomas,
@Tomasz. Tak, ustawiłem LD_LIBRARY_PATHzmienną, .bashrcponieważ muszę używać pakietu Matlab Compiler SDK, aby uruchomić funkcje kompilacji Matlab do jar w Javie. Po instalacji pakietu Matlab SDK powiedział mi, żebym dodał 3 ścieżki LD_LIBRARY_PATH, dlatego to zrobiłem.
Teedeez,
Czy możesz napisać, jak dokładnie LD_LIBRARY_PATHwygląda eksport ? Wygląda na to, że to jest przyczyna twojego problemu.
Thomas
@Thomas proszę zobaczyć moją edycję
Teedeez
Jeśli usunę linie, z których ustawia się LD_LIBRARY_PATHzmienną /.bashrc, to znowu działa. wygląda na to, że kiedy ustawiam LD_LIBRARY_PATHzmienną, Linux próbuje użyć libstdc++.so.6from Matlab w /usr/local/MATLAB/MATLAB_Runtime/v901/sys/os/glnxa64katalogu i próbuje załadować inny plik c ++, który nie istnieje
Teedeez

Odpowiedzi:

0

Z wywozem LD_LIBRARY_PATHw twojej .bashrc, dodajesz nową ścieżkę przeszukiwania dla bibliotek, które ma pierwszeństwo.

Problem polega teraz na tym, geditże biblioteka oczekuje także libstdc++.so.6w katalogu instalacyjnym Matlab. Oczywiście biblioteka ma tę samą nazwę, ale nie pasuje do geditoczekiwanej.

Aby pozbyć się problemu, powinieneś usunąć te specyficzne dla Matlaba rzeczy .bashrci być może napisać skrypt, aby uruchomić Matlab:

$ cat matlab.script
export LD_LIBRARY_PATH=/usr/local/MATLAB/MATLAB_Runtime/v901/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v901/bin/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v901/sys/os/glnxa64:
<path-to-matlab-binary>

Jak już wspomniałeś o korzystaniu z SDK, nie jestem pewien, czy potrzebujesz tego bash, tylko załaduj LD_LIBRARY_PATHMatlaba w razie potrzeby. Możesz także environment-modulesrzucić okiem na program pomocniczy do konfigurowania różnych narzędzi programistycznych i ich potrzebnych ścieżek oraz nadążania za bałaganem.

Tomasz
źródło
Nie wymagają specjalnie ustawić LD_LIBRARY_PATHw ~/.bashrc. Ponieważ piszę aplikację w Javie, która wywołuje niektóre funkcje napisane w języku Matlab, a te funkcje zostały skompilowane do słoików. Aby móc w ten sposób zintegrować Matlab z Javą, muszę zainstalować SDK kompilatora Matlab i, jak już powiedziałem, wymagałem dodania 3 ścieżek do LD_LIBRARY_PATHzmiennej. Ale kiedy uruchamiam moją aplikację Java, nadal mówi, że plik libmwmclmcrrt.so.9.0.1nie został znaleziony, java.library.pathnawet jeśli ten plik jest /usr/local/MATLAB/MATLAB_Runtime/v901/runtime/glnxa64
włączony