GCC로 컴파일할 때 "-stdlib=libstdc" 플래그를 사용해야 하는 경우
일부 시나리오에서는 "-stdlib= libstdc " 플래그는 GCC로 컴파일할 때 필요합니다. 상황은 다음과 같습니다.
Linux의 경우:
기본적으로 Linux 배포판은 libstdc를 표준 C 라이브러리로 사용합니다. 또한 최신 버전의 GCC는 기본적으로 번들 libstdc에서 C 11을 지원합니다. 따라서 Linux에서 C 11 코드를 컴파일하려면 g와 함께 "-std=c 11" 플래그를 사용하는 것만으로도 충분합니다.
g++ -std=c++11 input.cxx -o a.out
Mavericks 이전 OS X의 경우:
역사적으로 OS X의 g는 clang의 별칭이었습니다. 이러한 맥락에서 Apple의 이전 버전의 libstdc가 기본값이었습니다. C 11 지원이 포함된 libc 를 활용하려면 "-stdlib=libc"를 명시적으로 지정해야 했습니다:
g++ -std=c++11 -stdlib=libc++ input.cxx -o a.out
Mavericks 이상 OS X:
OS X Mavericks부터 libc가 기본 C 라이브러리가 되었습니다. 따라서 "-stdlib=" 플래그를 사용할 필요가 없습니다:
clang++ -std=c++11 input.cxx -o a.out
OS X에서 libstdc에 대한 빌드:
Xcode 10 이상에서는 빌드 libstdc에 대한 애플리케이션은 더 이상 지원되지 않습니다. libstdc에 대해 컴파일된 기존 코드는 계속 작동하지만 새 코드 컴파일은 허용되지 않습니다.
위 내용은 GCC로 컴파일할 때 \'-stdlib=libstdc \' 플래그는 언제 필요합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!