【发布时间】:2011-07-08 00:59:34
【问题描述】:
我正在尝试将我的应用程序从开发环境部署到用户的计算机,但我遇到了一些问题。
首先,我在我的开发电脑(高版本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,我认为它在我的项目中被隐式使用。
一百万。
彼得
【问题讨论】:
-
不是一个真正的答案,但可能是一个替代方案:CDE (stanford.edu/~pgbovine/cde.html) 允许您打包一个包含所有依赖项的可执行文件。
-
这是在另一台计算机上演示的快速解决方案,但我担心它不是一个完整的解决方案,因为我必须将我的应用程序部署给客户。
标签: c++ deployment ubuntu