programing

차이점은 무엇입니까? clang++ | clang - std = c++11

prostudy 2022. 7. 17. 17:46
반응형

차이점은 무엇입니까? clang++ | clang - std = c++11

이 명령어를 잘못 사용했기 때문에 링크 스텝에서 실패했습니다.

$ clang -std=c++11 -stdlib=libc++ myInputFile.cpp

clang이 C++ 언어 옵션을 제공하는 이유와 링크에 실패하는 이유를 설명할 수 있는 사람이 있습니까?왜 옵션을-x c++또는-std=c++11과 같은 일을 달성하다clang++고마워!

엄밀히 말하면, 어느 프로그램도clang또는clang++는 컴파일러입니다.둘 입력 인수를 분석하고 어떤 명령줄 인수를 사용하여 어떤 파일에 대해 어떤 컴파일러/어셈블러/링커를 호출할지를 결정하는 드라이버입니다.이 둘의 유일한 차이점은 이다.clang는 C 표준 라이브러리가 링크를 실행하는 경우 C 표준 라이브러리만을 대상으로 링크합니다.clang++C++ 및 C 표준 라이브러리의 양쪽 모두에 대한 링크입니다.

-x=<language>옵션은 소스 파일 언어를 결정하기 위한 드라이버 프로그램의 휴리스틱을 덮어씁니다.이것은 드라이버에게 컴파일러를 기동하도록 지시합니다.<language>개의치 않고.

-std=<dialect>옵션은 사용할 특정 언어의 사투리를 선택합니다.C++ 프로그램을 오래된 C++98 컴파일러로 이식할 필요가 있는 경우는, 를 사용해 컴파일 할 수 있습니다.-std=c++98.-std는 타겟 언어에만 적용됩니다.예를 들어 어셈블러나 자바는 C++98로 컴파일하지 않고 드라이버가 C++라고 생각하는 소스 파일만 컴파일합니다.

즉, 링크할 라이브러리를 쉽게 선택할 수 있도록 두 가지 드라이버 프로그램이 있습니다.C++를 컴파일하지만 C++ 표준 라이브러리에 링크하지 않는 합리적인 사용 사례가 있습니다.

Clang은 컴파일러 전체의 이름입니다.

단, 명령줄 관점에서 보면 다음과 같습니다.

  • Clang은 C 컴파일러입니다.
  • Clang++는 C++ 컴파일러입니다(g++는 C++ 컴파일러인 반면 gcc는 C 컴파일러입니다).

-std=c++11 옵션은 새로운 C++11 표준을 활성화합니다(g++와 동일).

언급URL : https://stackoverflow.com/questions/20047218/what-is-the-difference-clang-clang-std-c11

반응형