2010-06-04 29 views
1

我在嘗試安裝應用程序。在編譯過程中失敗,出現以下錯誤:/usr/bin/ld:找不到-lemu

/usr/bin/ld: cannot find -lemu 

我已經安裝了libemu庫,它現在目前居住在/ opt/libemu /。但是,當我嘗試編譯我的應用程序時,找不到該庫。有什麼方法可以糾正這個問題嗎?


編輯:它也像化妝是導致: 它也像make文件與編譯如下:

gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions 
build/temp.linux-x86_64-2.6/libemu_module.o 
-L/opt/libemu/lib -lemu -o build/lib.linux-x86_64-2.6/libemu.so 

我已經嘗試設置我的LD_LIBRARY_PATH到/ opt/libemu,仍然不起作用 - 失敗與上面提到的錯誤。

回答

2

你需要告訴鏈接它在哪裏:

gcc stuff -L/opt/libemu -lemu 

或:

gcc stuff /opt/libemu/libemu.a 

其中stuff是你的正常文件編譯/鏈接選項等

您還可以指定LIBRARY_PATH環境變量中的庫路徑:

LIBRARY_PATH=/opt/libemu 
export LIBRARY_PATH 

在您運行您的版本之前。另一種選擇是查看gcc在哪裏查找庫,方法是運行:

gcc --print-search-dirs 

並將您的庫放入其中一個列出的目錄中。

編輯:從你的最新信息,你真的不清楚你想要建立什麼。你想把一個靜態庫變成一個共享庫嗎?最重要 - 複製到/ opt/libemu目錄中的庫文件的確切文件名是什麼?

+0

我試圖編譯的第三方應用程序,我根本問題:「讓安裝」。我在哪裏指定-L/opt /。 。 。 ? – Julio 2010-06-04 15:36:53

0

環境變量LD_LIBRARY_PATH應包含(但可能不會默認)/ opt/libemu。

試運行:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/libemu 
make install 
+0

Ubuntu上的導出失敗,指出無效的路徑標識。經過一些谷歌搜索後,我想出了: export LD_LIBRARY_PATH = $ LD_LIBRARY_PATH:$ ROOTSYS/lib 哪個允許我導出,但是當我嘗試再次製作時,庫仍未找到。 。 。 – Julio 2010-06-04 15:50:01