9
标准库中的System.Info软件包的“os”函数的可能值是多少?Haskell中System.Info“os”函数的可能值是什么?
另外:这些值是否可靠,是否可以跨许多编译器移植?在Windows上拥抱会返回与ghc相同的值吗?
嗅探操作系统有更好的方法吗?
标准库中的System.Info软件包的“os”函数的可能值是多少?Haskell中System.Info“os”函数的可能值是什么?
另外:这些值是否可靠,是否可以跨许多编译器移植?在Windows上拥抱会返回与ghc相同的值吗?
嗅探操作系统有更好的方法吗?
GHC的变量取自“autotools”工具套件,该工具套件可生成众所周知的“configure”脚本,这些脚本几乎总是在编译时使用(./configure; make; make install
)。对于C编译器,configure
使用标准的“编译器标识字符串”(如x86_64-unknown-linux-gnu
),并另外计算标识主机平台的更详细的一组变量。这些变量用于GHC生成的Makefile
,并且此文件还生成文件,您在Info.hs
文件中看到该文件。
HUGS使用完全相同的过程来获取平台变量,不同之处在于头文件的命名方式不同(正如您可以在链接的源代码中看到的那样)。
由于Windows上的GHC和HUGS98都是使用MinGW和autotools编译的,所以变量在该平台上是一致的。
http://codepad.org/x13GGGta(拥抱)http://ideone.com/9C4ER(ghc) – applicative 2012-02-18 16:43:00