可以在windows上使用/模拟Solaris/Aix C/ c++编译器吗?

Can we use/simulate Solaris/Aix C/C++ compiler on windows?

本文关键字:Aix c++ 编译器 Solaris 模拟 windows      更新时间:2023-10-16

是否有任何方法在windows上使用aix/solaris编译器,以便我们确定应用程序不会在非windows平台上中断?
不同的编译器期望的代码标准是不同的,这能从一个操作系统中得到保证吗?
我知道在solaris/AIX这样的平台上编译意味着代码大多数情况下可以在windows编译器上编译。
但是这个过程是否可以在windows平台上完成,并具有非windows平台所需的额外严格性?

据我所知没有。每个编译器都有自己的特性,期望任何一个编译器试图模仿所有其他编译器是不合理的。您应该做的(尽管据我所知,g++是唯一提供该选项的编译器)是指定一个相当早期的标准版本(例如-std=c++98),并期待最好的结果。会有一些特殊的情况会被遗漏(例如,很长一段时间,Sun CC有不符合标准的库),但是通过不使用c++ 11的特性,例如,你应该限制问题的发生。

如果可能,最简单的解决方案可能是在所有地方强制使用相同的编译器(g++,或者clang)。

当然,包装任何直接与系统接口的东西。(我的经验是,在Unix下编译和运行的程序在Windows下做工作,因为似乎总是有对Posix函数的调用,这在Windows下不存在,或者在Windows下具有不同的语义。当我做这些事情的时候,我的基本编译器是Sun CC,带有不符合标准的库,它与vc++以及几乎所有其他编译器都不一致。