0

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

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

4

2 回答 2

2

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

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

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

于 2014-06-08T10:18:50.790 回答
1

一般来说,不能保证在 Linux 系统上构建的二进制文件可以在不同的 Linux 系统上运行(不同的发行版或同一发行版的不同版本)。对于某些应用程序来说,复制库文件lib*.so*gcc -static

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

于 2014-06-08T10:24:42.773 回答