问题
运行时出现如下问题
$ ./orangeapp
./orangeapp: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
从错误提示看,是没有找到event库。
编译时的编译选项“-l event -L/usr/local/lib/”,用于指定了库名称和路径,这个只是编译链接时使用。而运行时,event库所在目录/usr/local/lib不在系统搜索范围内,所以无法找到。
解决办法
(1)临时export:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
(2)永久起效:
~/.bashrc 中,在该文件的未尾,添加语句:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
保存文件,最后执行source语句使之生效。
$ source ~/.bashrc
(3)编译时指定:
编译时指定程序执行时库的搜索路径,使用”-Wl, rpath”选项,如下所示:
$ gcc -Wl,-rpath,/usr/local/lib test.c