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

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

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

답변1

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

일반적인 관행(예제 참조GNU가 만든다CC) 은 및 변수 에 따라 달라집니다 CXX. GNU의 경우 기본값은 cc각각 및 BSD g++를 선호합니다 (예제 참조) .ccc++OpenBSD 구성). 링커는 명시적으로 호출되지 않고 컴파일러 드라이버를 통해 액세스됩니다.

답변2

Linux의 경우 지난 20년 동안 내가 본 대부분의 Makefile은 gcc/ 만 사용했습니다 g++. 누군가 GCC 대신 실제 링커를 사용하려고 할 때 일반적으로 한 번 ld본 적이 있습니다.cc

cc대부분의 Linux 배포판은 에서 까지의 심볼릭 링크를 제공 gcc하지만 GCC를 제거하고 clang을 설치하면 그렇지 않습니다.

예를 들어 FreeBSD는 최근 Clang/LVM으로 이동했고, 다른 BSD는 계속 GCC를 사용하고, Mac OS도 Clang을 사용하는 등 이식 가능한지 여부는 알 수 없습니다. Android에는 자체 도구 체인이 있습니다.

저는 다른 유닉스를 사용해본 적이 없어서 코멘트할 수 없습니다.

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

관련 정보