c++ - C++ 项目的 Ubuntu 部署问题

标签 c++ deployment ubuntu

我正在尝试将我的应用程序从开发环境部署到用户的计算机,但我遇到了一些问题。

首先,我在我的开发电脑(更高版本的Ubuntu11.04)上编译运行:

Ubuntu11.04$ make
Ubuntu11.04$ ./MyApp
Program runs okay.

然后我将二进制文件 MyApp 复制到两台较低版本的机器(用户的计算机):

Ubuntu10.04$ ./MyApp
/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ./MyApp)

Ubuntu8.04$ ./MyApp
/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./MyApp)
/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ./MyApp)

但是,如果我在Ubuntu10.04上编译源码,然后运行:

Ubuntu10.04$ make
Ubuntu10.04$ ./MyApp
Program runs okay.

我该怎么办?在开发环境编译时,如何设置所用库的版本号?我没有直接使用 GLIBCXX,我认为它在我的项目中的某个地方被隐式使用。

感谢一百万。

彼得

最佳答案

你看到了吗Link with an older version of libstdc++

我从未安装过旧版本的 g++,但我在我的发行版中包含了一个 libstdc++.so,它对我很有用。我见过的最佳解决方案是让您的开发工作在可能最旧的系统上运行。我们在 Red Hat 9 上编译了一些东西,它适用于所有东西,但正如你所说,它可能是在旧机器上构建的任何主要问题。

关于c++ - C++ 项目的 Ubuntu 部署问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6618862/

相关文章:

C++ libPNG - 简单的初始化错误

ruby-on-rails - Windows 上的 Rails 部署环境

php - 添加到组的 www-data 用户无法在具有组权限的文件夹中写入/删除

Ubuntu 设备特定的蓝牙小部件

c++ - 如何在不丢失动画的情况下使用 Magick++ 调整和保存 gif 文件

c++ - 如何将 char 数组元素传递给 C++ 中的函数?

c++ - 警告 C4995 : 'CDaoDatabase' : name was marked as #pragma deprecated

deployment - Windows Server 2016 上的远程调试 UWP 应用

reactjs - 构建一次并在多个环境中部署构建文件,只需对 React 和 Webpack 进行最少的更改

linux - Glassfish - bin/asadmin create-network-listener 失败