C++ 컴파일러(및 링커)의 이식 가능한 이름

C++ 컴파일러(및 링커)의 이식 가능한 이름

cc는 C 컴파일러의 POSIX 이름입니다. C++ 컴파일러(및 링커)의 일반 이름이 있습니까? g++일반 gcc 또는 ld를 사용할 때 포함되지 않는 일부 라이브러리도 추가된다는 점에 유의하세요 .

답변1

POSIX C 컴파일러 프런트엔드는 다음과 같습니다.지금c99; cc널리 사용 가능하지만 보장되지는 않습니다. POSIX는 C++와 관련된 어떤 것도 지정하지 않으므로 C++ 컴파일러와 링커를 호출하는 표준화된 명령을 찾을 수 없습니다.

일반적인 관행(예를 참조하세요.GNU 메이크CC) 및 변수 에 의존하는 것입니다 CXX. GNU의 경우 기본값은 각각 cc및 입니다 g++. BSD는 ccand c++(예를 들어 참조)를 사용하는 경향이 있습니다.OpenBSD의 구성). 링커는 컴파일러 드라이버를 통해 액세스되며 명시적으로 호출되지 않습니다.

답변2

Linux의 경우 지난 20년 동안 내가 본 대부분의 Makefile은 gcc/ 외에는 아무것도 사용하지 않습니다 g++. 누군가 GCC가 아닌 실제 링커를 사용하려고 하면 일반적으로 ld. 한번쯤 본 적 cc있을 겁니다.

cc대부분의 Linux 배포판은 to to 에 심볼릭 링크를 제공 gcc하지만 GCC를 제거하고 대신 clang을 설치하는 경우에는 제공하지 않습니다.

예를 들어 FreeBSD는 최근 Clang/LVM으로 마이그레이션했고, 다른 BSD는 계속 GCC를 사용하고, Mac OS도 Clang을 사용하므로 이식성이 있는지는 알 수 없습니다. Android에는 자체 툴체인이 있습니다.

나는 다른 유닉스를 사용하지 않았으므로 코멘트가 없습니다.

귀하의 사용 사례는 무엇입니까? 질문을 편집하고 자세한 내용을 제공하십시오.

관련 정보