我可以成功链接到libawesomium-1.6.5.so
:
-L-L.
-L-lawesomium-1.6.5
-L-ldl
libawesomium-1.6.5.so
与我的可执行文件在同一个目录中,现在如果我尝试调用我的程序(我现在称之为 prog),它存在于:
./prog: error while loading shared libraries: libawesomium-1.6.5.so.0: cannot open shared object file: No such file or directory
libawesomium-1.6.5.so.0
所以我做了一个指向的符号链接libawesomium-1.6.5.so
,再次运行prog
给了我同样的错误,用自定义作品调用它LD_LIBRARY_PATH=./
,但我想分发prog
并且我希望用户能够在prog
没有 root 权限的情况下使用(将 awesomium 安装到/usr/lib
等)和无需设置LD_LIBRARY_PATH
. 一种选择是设置 . 的 shell 脚本LD_LIBRARY_PATH
,但我更喜欢另一种方式(我也听说设置LD_LIBRARY_PATH
是个坏主意)。
此外,如果不需要创建指向libawesomium-1.6.5.so.0
.
编辑:
传递-rpath=.
给链接器工作!但不幸的是 awesomium 无法处理它:
/.../awesomium_test/AwesomiumProcess: error while loading shared libraries: libawesomium-1.6.5.so.0: cannot open shared object file: No such file or directory
使用 -rpath 并从 prog 内部设置 LD_LIBRARY_PATH 有效