c/c++编译时,指定程序运行时查找的动态链接库路径

$ g++ -Wl,-rpath,/usr/local/lib/ -oevh libevent_http.cpp -levent


-Wl,-rpath,  用于指定程序运行时查找动态链接库的路径,多个路径是使用冒号隔开。这样就不用添加路径到 /etc/ld.so.conf 文件中了,在需要多个so版本共存时很有用


编译完成后可以使用以下命令查看路径是否设置成功了

$ readelf -dl  evh

看到类似下面的信息则是路径设置成功了

 0x000000000000000f (RPATH)              Library rpath: [/usr/local/lib/:/data1/thd/jsoncpp/lib/:/data1/thd/leveldb/lib/:/data1/tools/boost_1_53_0/stage/lib/]

另外以下命令可以查看可执行文件的依赖库

$ ldd a.out
可明确的知道需要那些依赖库,以及哪些依赖库找不到

你可能感兴趣的:(c/c++编译时,指定程序运行时查找的动态链接库路径)