2014-11-06 53 views
0

我想与我建立在另一个目录库编译C++程序(在Linux和OS X):克++共享库只在当前目录链接

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

“麦酒”仅仅是库我使用(libale.so在./lib/libale.so

它编译一切,但是当我运行它,我得到以下错误:

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

但是,它的工作,如果我把libale.so成同样的可怕ctory作为可执行文件(或添加符号链接)。我正在查找一些解决方案,其中一个建议是设置LD_LIBRARY_PATH。但是,我宁愿在编译期间直接链接路径。有没有办法做到这一点?

回答

-1

我发现答案是添加以下标志:

-Wl,-rpath=./lib 

然而,这并不在OS X上我最终只使用了OS X版本的符号连接工作,但它不是最佳解决方案。