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

http://blog.csdn.net/tsxw24/article/details/10220735

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

分类: c/c++ linux
  1. $ g++ -Wl,-rpath,/usr/local/lib/ -oevh libevent_http.cpp -levent  


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


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

  1. $ readelf -dl  evh  

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

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

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

  1. $ ldd a.out  

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

原文地址:https://www.cnblogs.com/okgogo2000/p/4531655.html