Ubuntuでのllvmおよびclangのインストール


16

だから、Ubuntu 12.04(64bit)にHalideをインストールしようとしています。llvm-3.2とclangをインストールする必要があります。

実行sudo apt-get install llvm-3.2は「パッケージが見つかりません」で終わります。

2.9バージョンを試用sudo apt-get install llvmまたはsudo apt-get install clangインストールします。Googleはこれを手伝ってくれました

sudo add-apt-repository ppa:kxstudio-team/builds
sudo apt-get update

今、sudo apt-get install llvm-3.2 clang-3.2動作します。しかし、Halideフォルダでmakeを実行すると、まだclang:Commandが見つかりません。


2
「clag:Command not found」は「clang:Command not found」と読みますか?
andyg0808

はい、ごめんなさい

UbuntuでGUIを使用していますか、それともコマンドラインのみを使用していますか?
andyg0808

また、clang 3.2またはclang 3+のみが必要ですか?
andyg0808

デスクトップ版をダウンロードしました。私は実際にllvm 3.2が必要です。clangのバージョンについての説明はありません。

回答:


9

さて、、、およびをインストールしてllvm、Ubuntu 13.04でHalideを正常にコンパイルclangしましたbuild-essential。あなたの問題に関する私の唯一の推測は、インストールしたPPAのLLVMまたはclangが正しく機能しなかった可能性があることです。「提案された」アーカイブとして知られているものを介して、12.04のUbuntuからLLVM 3.2を実際に入手することが可能だと思われます。持っているLLVMをパージし、「proposed」からインストールしてみてください。以下にその方法を説明します。(元の質問バージョンで)Ubuntuが初めてだと言ったので、最初に、すでに使用した各コマンドが何をするのか、できる限り説明します。

そのsudo apt-get install llvm-3.2ため、システムで有効になってllvm-3.2いる現在のリポジトリから名前が付けられたパッケージをインストールしようとします。あなたの場合、それが見つからなかったため、コマンドは失敗しました。パッケージをsudo apt-get install llvmインストールしましたllvm。これはおそらく、標準リポジトリで利用可能な最新のLLVMを使用する特別なパッケージです。あなたの場合、それは2.9でした。同じ考えがにも当てはまりますsudo apt-get install clangパーソナルパッケージアーカイブまたはPPA sudo add-apt-repository ppa:kxstudio-team/builds と呼ばれるものをシステムに追加します。これにより、別のリポジトリまたはソフトウェアソースからより多くのソフトウェアを取得できます。詳細については、https://help.launchpad.net/Packaging/PPAを参照してください。最後に、sudo apt-get update現在利用可能なリポジトリから利用可能なパッケージに関する情報を取得するようUbuntuに指示します。Debianでのパッケージ管理の詳細については、http: //www.debian.org/doc/manuals/debian-faq/ch-pkgtools.en.htmlをご覧ください(そのほとんどはUbuntuにも当てはまりますが、 UbuntuはDebianに基づいているため)。

したがって、持っているパッケージを削除し、excise-proposedから利用可能なバージョンをインストールする手順は次のとおりです。

  1. sudo apt-get purge llvm-3.2 clang-3.2LLVMとclangをシステムから完全に削除するために使用します。
  2. (オプション)sudo add-apt-repository --remove ppa:kxstudio-team/buildsシステムからPPAを削除するために使用します。
  3. https://wiki.ubuntu.com/Testing/EnableProposedの手順に従ってProposedアーカイブ(ページの右上)を有効にし、「-proposedからの選択的アップグレード」の手順に従ってください。最初の部分はllvm-3.2パッケージの実際のUbuntuバージョンを有効にし、2番目の部分はシステムが提案されたバージョンにすべてをアップグレードしようとするのを防ぎます。
  4. 使用sudo apt-get update可能なパッケージとバージョンに関する情報を取得するために使用します。
  5. sudo apt-get install llvm-3.2/precise-proposedLLVM 3.2をインストールするために使用し、sudo apt-get install clang/precise-proposedClang 3.0をインストールするために使用します(私はそれがあなたが得るべきバージョンだと思います)。
  6. NEW STEP: Doがsudo ln -s /usr/bin/llvm-config-3.2 /usr/local/bin/llvm-config、システムの御馳走を作るためにllvm-config-3.2(これllvm-configに付属しているものllvm-3.2として)llvm-config。より完全に、これはUbuntuがプログラムを探す別の場所でllvm-config-3.2へのシンボリックリンク(またはシンボリックリンク)を作成します(詳細:lnFHSPATH)。したがって、「llvm-config」を実行すると、Ubuntuはシンボリックリンクを見つけて、それが指すプログラムを実行します(llvm-config-3.2)。
  7. すべてが正しくコンパイルされるかどうかを確認してください。

うまくいけばうまくいく。私はこれのいずれもテストしていませんので、あなた自身の責任で使用してください。

編集:llvmllvm-3.2は独立していることに注意してください。llvm依存llvm-2.9ここを参照)、一方llvm-3.2、独立(ここで依存を参照

また、タブ補完について知っているかどうかもわかりません。コマンドを探しているが、名前がよくわからない場合に役立ちます(たとえば、この場合、おそらくllvm-config呼び出されたことを示しているはずllvm-config-3.2です)。


どうもありがとう!それはほとんど機能しました。唯一の問題は、インストールされたllvm-3.2にllvm-configがないことです。したがって、Halideでmakeを実行すると、llvmがインストールされていないことがわかります。install llvmを実行したところ、llvm-config --versionで2.9と表示されました。llvm-3.2をインストールしようとすると、それが最新バージョンであると表示されます。llvm-3.2とllvmは完全に独立しているようです。

答えの新しいステップをご覧ください。適切なバージョンを確実に取得するために、llvmパッケージをアンインストールするsudo apt-get purge llvm前に()パッケージをアンインストールする必要があるでしょう。コマンドを使用して、実行しようとしているファイルをいつでも確認できますwhich [command]。たとえば、which llvm-configを読む必要があります/usr/local/bin/llvm-config。詳細については、en.wikipedia.org / wiki / Which_%28Unix%29を参照してください。
andyg0808

llvm-configがgccのようにllvm-config-3.2にリンクされないのはなぜですか?これは意識的な選択ですか?
ヤヌストロエルセン14年

@JanusTroelsen私はそれが意識的な選択だと信じています。llvmUbuntu 12.04 のパッケージから入手可能なLLVMのバージョンはであったためllvm-2.9llvm-configコマンドはllvm-config同じバージョンの、つまりにリンクされていましたllvm-config-2.9。Ubuntu 13.04および13.10では、llvmパッケージはLLVM 3.2をインストールし、Ubuntu 13.10で行うllvm-config-3.2ようllvm-configにセットアップすることを期待しています。
andyg0808
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.