libmysqlcppconn.so.5:不能打开共享对象文件:没有这样的文件或目录

libmysqlcppconn.so.5: cannot open shared object file: No such file or directory

本文关键字:文件 对象 so 不能 共享 libmysqlcppconn      更新时间:2023-10-16

我在ubuntu上使用Netbeans构建了一个简单的c++应用程序。在应用程序中,我使用了mysql_connection和curl。应用程序在我的本地系统(Ubuntu)上运行正常

当我试图在我的Centos服务器上运行应用程序时,我得到这个消息:

 error while loading shared libraries: libmysqlcppconn.so.5: cannot open shared object file: No such file or directory.

尝试检查libmysqlcppconn.so. .5 .库在服务器上是否存在我发现有如下:

 REMOTE (Centos)
 **in [/usr/local/lib]**
 libmysqlcppconn-static.a  
 libmysqlcppconn.so@  
 libmysqlcppconn.so.7@  
 libmysqlcppconn.so.7.1.1.3*

 LOCAL (Ubuntu)
 **in [/usr/lib]**
 libmysqlcppconn-static.a  
 libmysqlcppconn.so@  
 libmysqlcppconn.so.5@  
 libmysqlcppconn.so.5.1.1.0*

为什么应用程序不能运行?我该怎么修理它?

您应该为您的服务器构建并打包它。

您的应用程序被链接到它所使用的一个库的不同(不兼容)版本。

我认为最简单的方法通常是将它构建在它将要运行的盒子上。

一般来说,不能保证在Linux系统上构建的二进制文件在不同的Linux系统(不同的发行版或同一发行版的不同版本)上也能工作。对于某些应用程序,复制库文件(lib*.so*)或静态链接它(gcc -static)就足够了,但一般来说,在多个Linux系统上分发程序要复杂得多,没有一个简单的解决方案。

一个解决方案是为您想要运行的每个系统重新编译您的程序。为此,您需要首先在这些系统上安装编译器和库依赖项(包括*-devel包)。