-stdlib=libstdc 플래그는 컴파일 중에 libstdc 표준 라이브러리 구현을 사용하도록 컴파일러와 링커에 지시합니다. 그러나 이 플래그를 항상 명시적으로 지정할 필요는 없습니다.
다른 플랫폼에서 Linux 또는 최신 GCC를 사용하는 경우
대부분의 Linux 배포판과 현재 GCC 버전의 경우 libstdc는 기본 표준 라이브러리 구현. 따라서 이러한 플랫폼에서 C 11 코드를 컴파일할 때 -stdlib=libstdc 플래그를 사용할 필요가 없습니다. 간단히 다음 명령을 사용하세요.
g++ -std=c++11 input.cxx -o a.out (GNU compiler) g++ -std=gnu++11 input.cxx -o a.out
Mavericks 이전의 macOS에서
Mavericks 이전의 macOS 릴리스에서 g는 clang에 대한 심볼릭 링크였습니다. Apple의 이전 libstdc 구현이 기본값이었습니다. C 11 라이브러리 지원을 제공하는 libc 를 사용하려면 -stdlib=libc 플래그가 필요했습니다.
g++ -std=c++11 -stdlib=libc++ input.cxx -o a.out (clang, not GNU compiler!) g++ -std=gnu++11 -stdlib=libc++ input.cxx -o a.out (clang, not GNU compiler!) clang++ -std=c++11 -stdlib=libc++ input.cxx -o a.out clang++ -std=gnu++11 -stdlib=libc++ input.cxx -o a.out
Mavericks 이후 macOS
macOS Mavericks 이상 , libc가 기본값입니다. -stdlib=libstdc 플래그를 명시적으로 전달하는 것은 불필요합니다.
clang++ -std=c++11 input.cxx -o a.out clang++ -std=gnu++11 input.cxx -o a.out
예외
-stdlib=libstdc 플래그를 명시적으로 사용하는 것이 유익한 특정 경우가 있을 수 있습니다.
위 내용은 컴파일 중 -stdlib=libstdc 플래그는 언제 필요합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!