>  기사  >  백엔드 개발  >  GCC로 컴파일할 때 \"-stdlib=libstdc \" 플래그는 언제 필요합니까?

GCC로 컴파일할 때 \"-stdlib=libstdc \" 플래그는 언제 필요합니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-24 01:27:29149검색

When is the

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.