우분투에서 llvm 및 clang 설치


16

그래서 우분투 12.04 (64 비트)에 Halide 를 설치하려고합니다 . llvm-3.2와 clang을 설치해야합니다.

실행 sudo apt-get install llvm-3.2은 'package not found'로 끝납니다.

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 2016 년

네, 죄송합니다

GUI에서 우분투를 사용하거나 명령 줄로 우분투를 사용하고 있습니까?
andyg0808 2016 년

또한 clang 3.2 또는 clang 3+ 만 필요합니까?
andyg0808

데스크톱 버전을 다운로드했습니다. 실제로 llvm 3.2가 필요합니다 .clang 버전에 대한 단어는 없습니다.

답변:


9

Ok, 우분투 13.04 llvm에서 clang, 및 을 설치하여 Halide를 성공적으로 컴파일했습니다 build-essential. 귀하의 문제에 대한 유일한 추측은 설치된 PPA의 LLVM 또는 clang이 제대로 작동하지 않았을 것입니다. 실제로 "제안 된"아카이브를 통해 12.04의 Ubuntu에서 LLVM 3.2를 얻을 수있는 것 같습니다. LLVM을 제거하고 "제안"에서 설치하려고 할 수 있습니다. 아래에 그 방법을 설명하겠습니다. Ubuntu를 처음 사용한다고 언급 했으므로 (원래 질문 버전) 먼저 먼저 사용했던 각 명령이 최선을 다해 설명합니다.

따라서 시스템에서 사용 가능한 현재 저장소 에서 sudo apt-get install llvm-3.2이름 지정된 패키지를 설치하려고 시도 합니다. 귀하의 경우에는 찾을 수 없으므로 명령이 실패했습니다. 설치된 단지는 표준 저장소에서 사용할 수있는 최신 LLVM을 사용하는 아마 특별한 패키지 패키지를. 귀하의 경우에는 2.9입니다. 동일한 아이디어가에 적용됩니다 . 불리는 무슨 추가 개인 패키지 아카이브 시스템 또는 PPA를. 이를 통해 다른 저장소 또는 소프트웨어 소스 에서 더 많은 소프트웨어를 얻을 수 있습니다 . 자세한 내용은 https://help.launchpad.net/Packaging/PPA 를 참조 하십시오 . 드디어,llvm-3.2sudo apt-get install llvmllvmsudo apt-get install clangsudo add-apt-repository ppa:kxstudio-team/buildssudo apt-get update현재 사용 가능한 리포지토리에서 사용 가능한 패키지에 대한 정보를 Ubuntu에 알립니다. 데비안의 패키지 관리에 대한 자세한 내용 은 http://www.debian.org/doc/manuals/debian-faq/ch-pkgtools.en.html 을 참조 하십시오 (대부분 우분투에도 적용되어야 함) 우분투는 데비안 기반이기 때문에).

따라서 패키지를 제거하고 정확한 제안에서 사용 가능한 버전을 설치하는 단계 :

  1. sudo apt-get purge llvm-3.2 clang-3.2시스템에서 LLVM 및 clang을 완전히 제거하는 데 사용하십시오 .
  2. (선택 사항) sudo add-apt-repository --remove ppa:kxstudio-team/builds시스템에서 PPA를 제거하는 데 사용 합니다.
  3. 제안 된 아카이브를 활성화하려면 https://wiki.ubuntu.com/Testing/EnableProposed 의 지침을 따르십시오 (페이지 상단 오른쪽). 첫 번째 부분은 llvm-3.2패키지 의 실제 Ubuntu 버전을 활성화하고 두 번째 부분은 시스템이 모든 것을 제안 된 버전으로 업그레이드하지 못하게합니다.
  4. sudo apt-get update현재 사용 가능한 패키지 및 버전에 대한 정보를 가져 오는 데 사용하십시오 .
  5. sudo apt-get install llvm-3.2/precise-proposedLLVM 3.2 sudo apt-get install clang/precise-proposed를 설치 하는 데 사용 하고 Clang 3.0을 설치 하는 데 사용하십시오 (필자가 가지고있는 버전이라고 생각합니다).
  6. NEW 단계 : 음주 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. 더 완벽하게, 이것은 우분투가 프로그램을 찾을 다른 장소에 llvm-config-3.2에 대한 심볼릭 링크 (또는 symlink)를 만듭니다 (추가 정보 : ln , FHS , PATH ). 따라서 "llvm-config"를 실행하면 Ubuntu가 symlink를 찾고 ( llvm-config-3.2)를 가리키는 프로그램을 실행합니다 .
  7. 이제 모든 것이 올바르게 컴파일되는지 확인하십시오.

잘하면 잘 작동합니다. 나는 이것의 어떤 것도 시험하지 않았으므로, 당신의 자신의 위험 등으로 사용하십시오. 그러나 나는 그것이 끔찍한 일을해서는 안된다고 확신합니다.

편집 : 하는 것으로 llvm하고 llvm-3.2독립적이다. llvm에 의존하지만 llvm-2.9( 여기 참조 ), llvm-3.2별개입니다 ( 여기에 의존 참조 )

또한 탭 완성 에 대해 알고 있는지 확실하지 않습니다 . 명령을 찾고 있지만 이름을 모르는 경우 도움이 될 수 있습니다 (예를 들어,이 이름 llvm-config은이라고 표시되었을 수 있음 llvm-config-3.2).


고마워요! 거의 효과가있었습니다. 유일한 문제는 설치된 llvm-3.2에 llvm-config가 없다는 것입니다. 따라서 Halide에서 make를 실행하면 llvm이 설치되어 있지 않습니다. 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에 연결되지 않습니까? 이것이 의식적인 선택입니까?
Janus Troelsen 2012 년

@JanusTroelsen 저는 이것이 의식적인 선택이라고 생각합니다. 로부터 사용할 수있었습니다 LLVM의 버전 때문에 llvm우분투 12.04이었다 위해 패키지 llvm-2.9llvm-config명령은 연결되었다 llvm-config, 즉 동일한 버전에서 llvm-config-2.9. 우분투 13.04 및 13.10에서 llvm패키지는 LLVM 3.2를 설치 하고 우분투 13.10에서 llvm-config-3.2와 같이 설정합니다 llvm-config.
andyg0808
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.