【发布时间】:2019-03-07 10:57:13
【问题描述】:
目前正在将现有的 c++ linux 应用程序移植到 Solaris 10 和 11(首先是 x86,然后是 SPAARC)。
首先在 solaris 10 上安装 gcc5g++ 并开始编译。在 math.h 中出现错误,发现这是我安装的 g++5.5 版本中的错误。由于这个错误,我得到了类似的错误
/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/include-fixed/math.h:53:12:错误:'std::double_t'尚未声明 使用 std::double_t; ^
/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/include-fixed/math.h:55:12:错误:“std::fpclassify”尚未声明 使用 std::fpclassify; ^
/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/include-fixed/math.h:56:12:错误:'std::isfinite'尚未声明 使用 std::isfinite; ^
由于我的应用程序使用了 g++ 4.92 不完全支持的 c++14 结构。需要更高版本的g++(5.5以上)
我找不到任何可以在 Solaris 10 上安装更高版本 g++ 的软件包,因此我使用安装了 g++ 7.3 的 Solaris 11 机器尝试执行在 Solaris 11 到 Solaris 10 上生成的可执行文件我收到以下错误:
ld.so.1:hellod:致命:libc.so.1:找不到版本“SUNWpublic”(文件 /Desktop/hellod 需要) ld.so.1:hellod:致命:libc.so.1:打开失败:没有这样的文件或目录 被杀
问题
- 还有其他方法可以解决我遇到的错误吗?
- 我可以在 Solaris 11 上编译并使其在 Solaris 10 上运行吗?
- 在 Solaris 10 上的 g++ 上安装更高版本的其他方法是什么?
- 还有哪些我可以交叉编译/移植的替代方案 申请?
非常感谢与此主题相关的任何帮助和指示。
【问题讨论】:
标签: g++ c++14 solaris solaris-10