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

时间:2014-06-08 09:00:58

标签: c++ mysql linux mysql-connector libmysql

我在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*

为什么不能运行应用程序?我该如何解决?

2 个答案:

答案 0 :(得分:2)

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

您的应用程序与其使用的某个库的不同(不兼容)版本相关联。

恕我直言,最简单的通常就是在它将要运行的盒子上构建它。

答案 1 :(得分:1)

通常,无法保证在Linux系统上构建的二进制文件可以在不同的Linux系统上运行(不同的发行版或同一发行版的不同版本)。对于某些应用程序,它足以复制库文件(lib*.so*)或静态链接(gcc -static),但一般来说,为多个Linux系统分发程序更复杂,没有简单的解决方案。

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