Mac OS,LLVM 3.7和缺少math.h标头

时间:2017-02-09 00:08:34

标签: haskell llvm

我需要在Mac OS 10.12上使用旧版本的LLVM,即3.7,因为ghc需要它。

我已经通过brew install llvm@3.7安装了它。

现在,即使是最简单的事情,我也会收到<stdin>:1:10: fatal error: 'math.h' file not found错误:

echo '#include <math.h>' | clang-3.7 -xc -v -

产生此错误的真实代码是我尝试在一个简单的helloworld.hs代码上运行ghc -fllvm,我希望将其作为LLVM bitcode。

我做了:

$ find /usr/local/Cellar/llvm\@3.7 | grep math
/usr/local/Cellar/llvm@3.7/3.7.1/lib/llvm-3.7/include/c++/v1/cmath
/usr/local/Cellar/llvm@3.7/3.7.1/lib/llvm-3.7/include/c++/v1/ctgmath
/usr/local/Cellar/llvm@3.7/3.7.1/lib/llvm-3.7/include/c++/v1/tgmath.h
/usr/local/Cellar/llvm@3.7/3.7.1/lib/llvm-3.7/lib/clang/3.7.1/include/tgmath.h

我发现没有任何math.h标题。

$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 8.0.2

我错过了什么?

1 个答案:

答案 0 :(得分:3)

我已经意识到我的错误:我应该在C标题中看起来缺少math.h,而不是C ++标题。

将以下任一项添加到/usr/local/Cellar/ghc/8.0.2/lib/ghc-8.0.2/settings中的C编译器标志中可以解决问题:

-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk

-idirafter /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/