我试图编译一个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条答案
按热度按时间nc1teljy1#
任何你认为没有安装的库包都可以使用
sudo apt-get install
安装。但问题是要找到合适的包名apt-get才能理解。那么,如何做到这一点?!简单使用命令:
sudo apt-cache search <filename>
个例如:在这种情况下
lmysqlclient
字符串
(记住从实际名称中排除'l',即mysqlclient而不是lmysqlclient)。该输出:
型
在上面的
-libmysqlclient-dev
是apt-get
可以识别并解决我们的cannot find lmysqlclient
问题的名称所以现在键入:
sudo apt-get install libmysqlclient-dev
从接口。完成后,尝试创建所需的文件。rta7y2nd2#
简化@SriHariY.S的回答-
尝试使用
sudo apt-get install libmysqlclient-dev
安装它。ilmyapht3#
你有MySQL客户端库吗?你能把它看成
字符串
此外,您可以使用链接器上的
-R
标志将libmysqlclient硬链接为型
或者,可以将
LD_LIBRARY_PATH_32
或LD_LIBRARY_PATH_64
导出为型
乌尔科
g52tjvyc4#
在Ubuntu 18上,我使用这个命令来查找所需包的 * 一个名称 * 来修复这个错误:
字符串
在此之后,我安装了丢失的包:
型