GCC 에서 C11?
C11 코드를 컴파일하려고 합니다.thread.h
, 할 수가 없어요.GCC(현재 4.6.2 실행)를 다시 컴파일했고, 다음과 같이 컴파일하려고 합니다.gcc -std=c1x file.c -o file
. 저는 g++에서 할 수 있습니다.thread
도서관, 즉) 하지만 나는 C에 있을 수 없습니다.thread.h
아직 GCC 분포에 포함되지 않았나요?
스레딩을 위한 표준 C11 헤더는<threads.h>
,것은 아니다.<thread.h>
. N1570 초안의 섹션 7.26 참조.
예를 들어 stdio를 포함한 대부분의 C 표준 라이브러리는 gcc 분포에 포함되지 않습니다.대신 gcc는 운영 체제가 제공하는 런타임 라이브러리에 따라 달라집니다.그것은 일반적으로 두 헤더를 모두 포함합니다(예:<threads.h>
) 및 라이브러리를 구현하는 실제 코드.
대부분의 리눅스 시스템(또는 원할 경우 GNU/리눅스)에서 라이브러리는 GNU의 glibc이며 다른 시스템에서는 다른 것이 됩니다.
따라서 중요한 질문은 glibc 또는 사용 중인 C 라이브러리가 언제 C11의 쓰레드 기능을 지원할 것인가 하는 것입니다.
glibc는 버전 2.28에서 C11 스레드를 지원합니다.우분투 18.04.1 LTS 시스템은 현재도 glibc 2.27을 사용하고 있습니다.다시 말하지만, 이것은 GNU libc를 사용하는 구현에만 적용되지, 모든 gcc 기반 구현에는 적용되지 않습니다.월드센더가 댓글로 언급했습니다.
업데이트: Ubuntu 18.10(LTS(Long Term Support) 릴리스가 아님)에는 다음을 지원하는 glibc 2.28이 있습니다.<threads.h>
. 또한 user2548688의 답변이 지적하듯이, musl C 라이브러리가 지원합니다.<threads.h>
. Ubuntu에서는 다음을 설치할 수 있습니다.musl-dev
포장하여 사용합니다.musl-gcc
지휘.
(Compiler와 가장 밀접하게 연결된 라이브러리의 일부 부분은 gcc 자체에서 제공합니다.쓰레딩 라이브러리는 그 중 하나가 아닐 수도 있지만, 확실히 어느 정도 컴파일러 지원이 필요합니다.)
이에 대한 자세한 정보는 여기에서 확인할 수 있습니다.
... (Atomics - stdatomic.h - 는 선택 사항이며 관련 언어 기능이 GCC 4.8에 구현될 때까지 기다려야 할 수 있습니다.Annex K의 threads.hand bounds-checking 인터페이스의 선택적 쓰레드 인터페이스는 별도의 라이브러리에 들어갈 수 있지만 현재로서는 glibc에 필요하지 않을 것으로 생각합니다.
내 추측으로는 적어도 표준 glibc와 gcc에서는 이것이 꽤 오랫동안 구현되지 않을 것입니다(소스 게시물은 약간의 통찰력을 제공합니다).제 개인적인 추측으로는 1년 정도 걸릴 것 같습니다. 생산용으로 충분히 안정적일 때까지 아마 2년 정도 걸릴 것입니다.Thats 2k14 (assert(survival_2012)) :P
GCC 표준 페이지에서 C11에 대해 인용하자면:
GCC는 이 표준의 일부에 대한 불완전한 지원을 제한합니다.
저는 GCC 4.6.1만 가지고 있지만 "실"은 가지고 있지 않습니다.h" 헤더 파일은 내 시스템 어디에나 있습니다.
4.6 또는 4.7의 변경 페이지에는 쓰레드가 언급되지 않습니다.
4.7 변경 페이지에 언급된 "스레드"는 있지만 C11 컨텍스트에서 이와 아무런 관련이 없는 것으로 보입니다.또한 C11에 대해서는 앞으로 나올 4.8페이지에 언급된 내용이 없습니다.
musl libc에는 아직 C11 http://www.musl-libc.org/ glibc가 쓰레드가 없습니다.h 지원입니다.
언급URL : https://stackoverflow.com/questions/8859394/c11-thread-h-in-gcc
'programing' 카테고리의 다른 글
system.out.println 출력은 Oracle Java 클래스에서 어디로 이동합니까? (0) | 2023.10.24 |
---|---|
phpmyadmin에서 완전한 가입을 사용하는 방법? (0) | 2023.10.24 |
div를 숨기되 빈 공간은 유지합니다. (0) | 2023.10.24 |
AngularJS - 새로 고침 토큰 처리? (0) | 2023.10.24 |
WP의 CPT Custom Menu Position 문제 (0) | 2023.10.19 |