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

Sta*_*ich 5 haskell llvm

我需要在Mac OS 10.12上使用旧版本的LLVM,即3.7,因为LLVM是必需的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 -
Run Code Online (Sandbox Code Playgroud)

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

我已经做好了:

$ 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
Run Code Online (Sandbox Code Playgroud)

我看到没有任何math.h标题。

$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 8.0.2
Run Code Online (Sandbox Code Playgroud)

我想念什么?

Sta*_*ich 3

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

将以下任一内容添加到 C 编译器标志/usr/local/Cellar/ghc/8.0.2/lib/ghc-8.0.2/settings可修复该问题:

-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/