我正在尝试编译一个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/
我意识到我需要链接一些库,但是在哪里以及如何链接呢?
任何帮助都将不胜感激。谢谢。
发布于 2016-04-04 19:15:43
您认为没有安装的任何库包都可以使用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-dev
是apt-get
可以识别并解决我们的cannot find lmysqlclient
问题的名称
所以现在输入:sudo apt-get install libmysqlclient-dev
from interface。完成后,尝试制作所需的文件。
发布于 2018-06-06 22:04:52
简化@SriHariY.S的答案--
尝试使用sudo apt-get install libmysqlclient-dev
安装它。
发布于 2010-11-17 19:35:35
你有MySQL客户端库吗?你能像这样找一下吗?
find / -name "libmysqlclient.so" -type f -print 2>/dev/null
此外,还可以在链接器上使用-R
标志将libmysqlclient硬链接为
g++ -R/usr/local/mysql/lib ....
或者,您可以将LD_LIBRARY_PATH_32
或LD_LIBRARY_PATH_64
导出为
export LD_LIBRARY_PATH_32=$MYSQL_HOME/lib
厄科,
https://stackoverflow.com/questions/4198623
复制相似问题