找不到-lmysqlclient

时间:2010-11-16 20:29:56

标签: mysql solaris

我正在尝试编译一个C ++程序,其中一个类使用。 g ++无法找到库是我的猜测。我用来编译的命令是 -

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
user@opteron 12:26:02 ~/c++/projname/

我意识到我需要链接一些库,但是在哪里以及如何?

任何帮助将不胜感激。 感谢。

4 个答案:

答案 0 :(得分:9)

您认为未安装的库包可以使用sudo apt-get install安装。但问题是找到apt-get包可以理解的正确名称。那怎么做?!简单

使用命令:sudo apt-cache search <filename>

例如:在这种情况下lmysqlclient

sudo apt-cache search mysqlclient

(记得从实际名称中排除'l',即mysqlclient而不是lmysqlclient)。 这输出:

libmysqlclient-dev - MySQL database development files

上述-libmysqlclient-devapt-get可以识别并解决我们cannot find lmysqlclient问题的名称

所以现在从界面输入:sudo apt-get install libmysqlclient-dev。 完成后,尝试制作所需的文件。

答案 1 :(得分: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 :(得分:2)

简化@SriHariY.S的答案 -

尝试使用sudo apt-get install libmysqlclient-dev安装它。

答案 3 :(得分:0)

在Ubuntu 18上,我使用以下命令查找所需软件包的名称来修复此错误:

apt search lmysqlclient

此后,我安装了缺少的软件包:

sudo apt install libmariadbclient-dev-compat