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