找不到-lmysqlclient

uz75evzq  于 2023-08-02  发布在  Mysql
关注(0)|答案(4)|浏览(92)

我试图编译一个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/


我意识到我需要链接一些库,但是在哪里以及如何链接?
如果你能帮忙的话,我会很感激的。- 谢谢-谢谢

nc1teljy

nc1teljy1#

任何你认为没有安装的库包都可以使用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从接口。完成后,尝试创建所需的文件。

rta7y2nd

rta7y2nd2#

简化@SriHariY.S的回答-
尝试使用sudo apt-get install libmysqlclient-dev安装它。

ilmyapht

ilmyapht3#

你有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


乌尔科

g52tjvyc

g52tjvyc4#

在Ubuntu 18上,我使用这个命令来查找所需包的 * 一个名称 * 来修复这个错误:

apt search lmysqlclient

字符串
在此之后,我安装了丢失的包:

sudo apt install libmariadbclient-dev-compat

相关问题