2017-09-29 8 views
1

私はコンパイラを作ろうとしていますが、llvm(C++ api)を中間コードと最終コードの作成に使用しています。私はエラーになってる私のメイクファイルで'llvm/IR/Constants.h'ファイルが見つかりません

llvm.o: llvm.cpp llvm.h 
    $(CPP) llvm.cpp -c -$(FLAGS) 

:コマンドを実行しようとしたときけれども、私はマックOSを使用してい

In file included from llvm.cpp:6: 
./opt.h:5:10: fatal error: 'llvm/IR/Constants.h' file not found 
#include <llvm/IR/Constants.h> 
     ^~~~~~~~~~~~~~~~~~~~~ 
1 error generated. 

を(シエラバージョン10.12.6)をし、I blu(brew install llvm)を使ってllvmをインストールしたので、どのようにライブラリファイルが見つからないのかわかりません。

また、私打ち鳴らすバージョン:私はそれをたくさんGoogleで検索しましたが、私の問題を解決する何かを見つけることができませんでした

bash-3.2$ clang --version 
Apple LLVM version 9.0.0 (clang-900.0.37) 
Target: x86_64-apple-darwin16.7.0 
Thread model: posix 
InstalledDir: /Library/Developer/CommandLineTools/usr/bin 

は、すべてのヘルプは大歓迎!!!。

答えて

2

あなたのFLAGSは何ですか?リンカーフラグとヘッダー検索フラグを指定する必要があります。次

はあなたを助けることができる:任意のパラメータなし--libsはすべてLLVMライブラリを使用してバイナリをリンクすること

llvm.o: llvm.cpp llvm.h 
    $(CPP) llvm.cpp -c -$(FLAGS) `llvm-config --cxxflags --ldflags --libs` 

注意を。

UPD:それはシステムコンパイラを無効になり、いくつかの方法でシステムをネジ止めすることができるためのMacOS LLVM-configおよび他のツールで

は、$PATHに追加されません。フルパスを使用する必要があります(例: /usr/local/Cellar/llvm/3.9.0/bin/llvm-config。ここで正しいバージョンを使用していることを確認してください。また、あなたのFLAGSが実際に評価され、コマンドに貼り付けられていないことを確認してください

あるよう:応答のための

FLAGS=$(shell llvm-config --cxxflags --ldflags --libs) 
+0

おかげで、私のフラグ: 'LLVM-CONFIG-3.8 --cxxflags --ldflags - libs --system-libs'と言いましたが、私が言及しなかったもう一つの問題は 'llvm-config-3.8 --cxxflags'を認識しないということです。例えば'/bin/bash:llvm-config -3.8:コマンドが見つかりませんでした」と言っていましたが、主な問題はライブラリの欠落であると思ったので、フラグについて言及していませんでした。 – coder

+0

@coder答えを更新しました。 – AlexDenisov

+0

それは正しい、はい。 – AlexDenisov

関連する問題