我尝试使用我在另一个目录中构建的库来编译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
。但是,我宁愿在编译期间直接链接路径。有没有办法做到这一点?
答案 0 :(得分:-1)
我找到的答案是添加以下标志:
-Wl,-rpath=./lib
但是,这在OS X上不起作用。我最后只使用了OS X版本的符号链接,但它不是最佳解决方案。