2014-11-06 49 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版本的符號連接工作,但它不是最佳解決方案。