g ++共享库仅链接到当前目录

时间:2014-11-06 15:26:56

标签: c++ linker g++ shared-libraries clang

我尝试使用我在另一个目录中构建的库来编译C ++程序(在Linux和OS X上):

$ g++ -I./include -L./lib src/main.cpp -lale -o proj

" ALE"我只是使用的库(./lib/libale.so中的libale.so)

它编译所有内容,但是当我运行它时,我收到以下错误:

./proj: error while loading shared libraries: libale.so: cannot open shared object file: No such file or directory

但是,如果我将libale.so放入与可执行文件相同的目录(或添加符号链接),它确实有效。我正在查找一些解决方案,一个建议是设置LD_LIBRARY_PATH。但是,我宁愿在编译期间直接链接路径。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:-1)

我找到的答案是添加以下标志:

-Wl,-rpath=./lib

但是,这在OS X上不起作用。我最后只使用了OS X版本的符号链接,但它不是最佳解决方案。