g++ -L指定动态库目录不起作用

目录结构

编译:g++ -w -g -o ../bin/linux/main main.cpp -I ../include/ -I ./voice/ -L ../bin/linux/ -L ../lib/linux/ -ldataBaseInterface -lmysqlclient -lhpr -llogsystem -ljson -lcurl -lmsc -lvoiceInterface -lxml

编译过程没有异常,执行main的时候找不到动态库:./../bin/linux/main: error while loading shared libraries: libhpr.so: cannot open shared object file: No such file or directory
如果终端用export或者在/etc/ld.so.conf中添加动态库路径就可以正常运行,-L只是编译的时候起作用,运行的时候还是得额外指定动态库目录?


知道了运行时库库目录还要额外指定-Wl,--rpath

阅读 6.8k
1 个回答
新手上路,请多包涵

-L只是编译的时候起作用。

一般别用rpath,因为换个机器就不好使了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题