我正在尝试将我的应用程序从开发环境部署到用户的计算机,但我遇到了一些问题。
首先,我在我的开发电脑(更高版本的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/