Clang으로 C ++를 어떻게 컴파일합니까?


97

Ubuntu에서 apt-get을 사용하여 Clang 을 설치 했으며이를 사용하여 C 파일을 성공적으로 컴파일 할 수 있습니다. 그러나 나는 그것을 통해 C ++를 컴파일하는 방법을 모른다. C ++를 컴파일하려면 어떻게해야합니까?

답변:


148

명령 clang은 C 용이고 명령 clang++은 C ++ 용입니다.


48

또한 후손의 경우-Clang (예 : GCC)은 -x입력 파일의 언어를 설정하는 스위치를 허용합니다 .

$ clang -x c++ some_random_file.txt

이 메일 링리스트 스레드의 차이점을 설명 clang하고 clang++잘 : 그 소리와 그 소리의 차이를 ++


4
CPP 파일을 .NET으로 컴파일 할 때 clang -x C ++ 에서 링커 오류가 발생 했습니다 #include <iostream>. -lstdc ++ 플래그가이 문제를 해결했습니다.
Slav

1
이제 제 눈앞에 Clang의 소스 코드가 있습니다. 빌드하는 동안 (Windows에서) 먼저을 빌드 clang.exe한 다음 해당 실행 파일을 clang++.exe. 따라서 동일한 실행 파일이며 런타임시 자체 이름을 확인하여 C 또는 C ++ 컴파일러로 동작할지 여부를 구분합니다. HTH.
Serge Rogatch

참고 로이 옵션 -x c++은 .h 파일을 C 대신 C ++를 포함하는 것으로 처리 -extra-arg하도록 clang-tidy 로 지정하는 데 매우 유용했습니다 .
Ad N

소스에서 전체를 빌드하지 않는 한 실제로 유용하기에는 너무 제한적입니다. clang++어떤 종류의 파일을 제공하는지 감지하고 사용 하는 것이 좋습니다. 프로젝트가 포함 할 수있는 경우 .cpp파일, .ll파일 (LLVM IR) 및 .o, .a, .so타사 라이브러리에서 어떤없는 파일을 clang -x c++그냥 발생합니다.
Sahsahae

47

문제를 직접적으로 해결하는 답이없는 이유를 모르겠습니다. C ++ 프로그램을 컴파일하고자 할 때는 clang++. 예를 들어 다음은 저에게 효과적입니다.

clang++ -Wall -std=c++11 test.cc -o test

제대로 컴파일 된 경우 실행 파일을 생성합니다 test, 당신은 사용하여 파일을 실행할 수 있습니다 ./test.

또는 clang++ test.cc프로그램을 컴파일하는 데 사용할 수 있습니다 . 라는 기본 실행 파일이 생성됩니다 a.out. ./a.out파일을 실행하는 데 사용 합니다.

g ++에 익숙하다면 전체 프로세스는 g ++와 매우 유사합니다. 옵션에 어떤 경고가 포함되어 있는지 확인하려면 이 게시물 을 참조하십시오 -Wall. 이 페이지 는 Clang에서 지원하는 진단 플래그 목록을 보여줍니다.


4
실제로 질문에 답 해주셔서 감사합니다.
Curyous

4

소스에서 Clang을 빌드 할 때 비슷한 문제가 발생했습니다 (하지만 sudo apt-get install. 이는 실행중인 Ubuntu 버전에 따라 다를 수 있음).

clang++C ++ 라이브러리의 올바른 위치를 찾을 수 있는지 확인하는 것이 좋습니다.

"#include <...> search starts here :" 에서 g++ -v <filename.cpp>및 의 결과를 비교합니다 clang++ -v <filename.cpp>.


0

솔루션 1 :

  clang++ your.cpp

솔루션 2 :

  clang your.cpp -lstdc++

해결책 3 :

   clang -x c++ your.cpp 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.