Compiler construction 在sun studio 12上编译,在sun studio 10上运行
我需要编译和链接一个程序,以便某人在Solaris 10 Sparc 64位机器上运行,该机器具有Sun Studio 10 我有一台64位Solaris 10 Sparc机器,但我只能在Oracle网站上找到Sun Studio 11和12进行下载。看来,由于它的年龄,Sun Studio 10无法下载 我的问题是,有没有一种方法可以使用Studio 12(带有一组标志设置)编译一个程序,以便它可以与Sun Studio 10无缝运行Compiler construction 在sun studio 12上编译,在sun studio 10上运行,compiler-construction,sun,sunstudio,Compiler Construction,Sun,Sunstudio,我需要编译和链接一个程序,以便某人在Solaris 10 Sparc 64位机器上运行,该机器具有Sun Studio 10 我有一台64位Solaris 10 Sparc机器,但我只能在Oracle网站上找到Sun Studio 11和12进行下载。看来,由于它的年龄,Sun Studio 10无法下载 我的问题是,有没有一种方法可以使用Studio 12(带有一组标志设置)编译一个程序,以便它可以与Sun Studio 10无缝运行 感谢您提供的指导如果您使用一个版本的Studio(如11或
感谢您提供的指导如果您使用一个版本的Studio(如11或12.x)构建程序,您不能期望从早期的Studio版本链接到库。你不说你使用的是什么编程语言,但是这个问题最常见的是FORTRAN和C++。
例如,除非您采取步骤避免问题(见下文),使用STLPART或间隔库的C++程序将尝试在运行时链接到与编译器一起安装的共享库。如果程序是使用Studio 11或12.x构建的,那么与Studio 10库的链接将无法正常工作
但是,如果程序仅链接到/usr/lib中的默认运行时库,那么目标系统上是否安装了Studio,或者安装了哪个版本并不重要。您可以通过在构建程序的系统上运行“ldd”来确定是否存在这种情况: 输出将显示程序使用的所有共享库及其来源。如果编译器安装区域中没有任何库,则没有问题 唯一的另一个问题是Solaris兼容性。如果在Solaris版本N上构建程序,则可以在Solaris N+1或更高版本上运行该程序,但不能在Solaris N-1或更低版本上运行。原因是Solaris保留了旧接口,但添加了新接口。程序可能依赖于旧版Solaris中不存在的Solaris接口。特别是对于Solaris 10,更高版本的更新引入了早期更新中没有的新功能和界面。例如,如果您在update 10上构建程序,它可能不会在原始Solaris 10上运行此外,如果构建系统已经用C++运行库(包SunWLBC)的后期版本进行修补,则目标系统应该具有相同或更高的补丁。您可以通过运行命令来查找修补程序版本
% showrev -p | grep SUNWlibC
回到我最初对Studio附带的库的讨论,本文
描述构建分发程序的最佳实践,以使其不依赖于编译器安装
史蒂夫·克拉梅
Oracle C++编译器团队如果你用Studio(如11或12。x)的一个版本来构建程序,你就不能期望链接到更早的Studio版本的库。你不说你使用的是什么编程语言,但是这个问题最常见的是FORTRAN和C++。
例如,除非您采取步骤避免问题(见下文),使用STLPART或间隔库的C++程序将尝试在运行时链接到与编译器一起安装的共享库。如果程序是使用Studio 11或12.x构建的,那么与Studio 10库的链接将无法正常工作
但是,如果程序仅链接到/usr/lib中的默认运行时库,那么目标系统上是否安装了Studio,或者安装了哪个版本并不重要。您可以通过在构建程序的系统上运行“ldd”来确定是否存在这种情况: 输出将显示程序使用的所有共享库及其来源。如果编译器安装区域中没有任何库,则没有问题 唯一的另一个问题是Solaris兼容性。如果在Solaris版本N上构建程序,则可以在Solaris N+1或更高版本上运行该程序,但不能在Solaris N-1或更低版本上运行。原因是Solaris保留了旧接口,但添加了新接口。程序可能依赖于旧版Solaris中不存在的Solaris接口。特别是对于Solaris 10,更高版本的更新引入了早期更新中没有的新功能和界面。例如,如果您在update 10上构建程序,它可能不会在原始Solaris 10上运行此外,如果构建系统已经用C++运行库(包SunWLBC)的后期版本进行修补,则目标系统应该具有相同或更高的补丁。您可以通过运行命令来查找修补程序版本
% showrev -p | grep SUNWlibC
回到我最初对Studio附带的库的讨论,本文
描述构建分发程序的最佳实践,以使其不依赖于编译器安装
史蒂夫·克拉梅
Oracle C++编译器团队< /P>