차이점은 무엇입니까? 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
'programing' 카테고리의 다른 글
| 자바에서 확장자를 사용하지 않고 파일 이름을 가져오려면 어떻게 해야 합니까? (0) | 2022.07.17 |
|---|---|
| ESLint VueJS v-slot (0) | 2022.07.17 |
| Vue array.splice 목록에서 잘못된 항목 제거 (0) | 2022.07.17 |
| Vuex는 객체에 새로운 어레이 속성을 추가하고 사후 대응 방식으로 변환 내부의 객체에 요소를 푸시합니다. (0) | 2022.07.17 |
| vuex 변환에서 값을 반환하시겠습니까?(새로 생성된 객체의 ID) (0) | 2022.07.17 |