mogę z powodzeniem połączyć przeciwko libawesomium-1.6.5.so
:Łączenie przeciwko Shared Library, nazywając program bez niestandardowego LD_LIBRARY_PATH
-L-L.
-L-lawesomium-1.6.5
-L-ldl
libawesomium-1.6.5.so
jest w tym samym katalogu, co moim pliku wykonywalnego, teraz gdy próbuję zadzwonić do mojego programu (Zadzwonię to prog do tej pory), to istnieje z:
./prog: error while loading shared libraries: libawesomium-1.6.5.so.0: cannot open shared object file: No such file or directory
Więc robię dowiązaniem libawesomium-1.6.5.so.0
wskazując libawesomium-1.6.5.so
, bieganie prog
znowu daje mi ten sam błąd, nazywając go ze zwyczajem LD_LIBRARY_PATH=./
działa, ale chcę rozpowszechniać prog
i chcę, aby użytkownik mógł używać prog
bez praw administratora (instalując awesomium na /usr/lib
itp.) I bez potrzeby ustawiania LD_LIBRARY_PATH
. Jedną opcją byłby skrypt powłoki, który ustawia LD_LIBRARY_PATH
, ale wolałbym inny sposób (ja też słyszałem ustawienie LD_LIBRARY_PATH
jest złym pomysłem).
Co więcej, byłoby świetnie, gdyby nie było potrzeby tworzenia dowiązania symbolicznego do libawesomium-1.6.5.so.0
.
EDIT:
Przechodząc -rpath=.
do prac łącznikowych! Ale niestety awesomium nie może sobie z tym poradzić:
/.../awesomium_test/AwesomiumProcess: error while loading shared libraries: libawesomium-1.6.5.so.0: cannot open shared object file: No such file or directory
Korzystanie -rpath i ustawienie LD_LIBRARY_PATH od wewnątrz prog działa
Wow to działa, dziękuję! No cóż, niezupełnie, zobacz moją edycję. – dav1d
Rozgryzłem to! Mogę ustawić 'LD_LIBRARY_PATH' przed załadowaniem awesomium do mojego programu. – dav1d
Powinieneś przekazać '-Wl, -rpath = '$ ORIGIN'' zamiast' -Wl, -rpath = .' i LI_LIBRARY_PATH będą bezużyteczne. – Julien