2010-11-16 139 views
6

我想編譯一個C++程序和其中一個類使用。 g ++無法找到這些庫是我的猜測。我用來編譯的命令是 -找不到-lmysqlclient

g++ c1.cpp c2.cpp c3.cpp c4.cpp -o c4 -lm -lmysqlclient 

c3.cpp是需要mysql.h的文件。這作品完美我的本地機器,但拒絕與錯誤

cannot find -lmysqlclient 

我試圖找到使用find命令服務器上的文件libmysqlclient.so運行在服務器上,我不認爲他們是目前有

uname -a 

揭示

SunOS opteron 5.10 Generic_139556-08 i86pc i386 i86pc 
[email protected] 12:26:02 ~/c++/projname/ 

我意識到我需要鏈接一些庫,但在那裏 如何?

任何幫助,將不勝感激。 謝謝。

+0

你不能在服務器上安裝你需要的庫嗎? – 2010-11-16 20:32:04

+0

不,我沒有權限這麼做。 – 2010-11-16 22:35:32

回答

2

你有MySQL客戶端庫嗎?你可以看看它作爲

find/-name "libmysqlclient.so" -type f -print 2>/dev/null 

此外,您還可以使用連接器的-R標誌,硬連接的的libmysqlclient作爲

g++ -R/usr/local/mysql/lib .... 

或者,您也可以在LD_LIBRARY_PATH_32LD_LIBRARY_PATH_64導出爲

export LD_LIBRARY_PATH_32=$MYSQL_HOME/lib 

Urko,

2

無論李你認爲未安裝的brary軟件包可以使用sudo apt-get install進行安裝。但問題是要找到apt-get可以理解的軟件包的正確名稱。那麼該怎麼做?!簡單

使用命令:sudo易於緩存搜索

對於例如:在這種情況下lmysqlclient

1> sudo易於緩存搜索的mysql (記得從實際名稱,即排除「L」 ,的mysql,而不是lmysqlclient)

- 這種輸出 的libmysqlclient-dev的 - 在上面-libmysqlclient-dev的MySQL數據庫開發文件

2>是apt-get的名字可以識別並解決我們無法找到lmysqlclient問題

所以現在輸入:sudo apt-get從接口安裝libmysqlclient-dev。

完成後,嘗試讓你需要的文件。它爲我工作