我需要在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
我错过了什么?
答案 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/