GCC linaro 컴파일러가 "알 수 없는 유형 name size_t" 오류를 던집니다.
저는 제 코드를 컴파일하기 위해 GCC Linaro 컴파일러를 사용하고 있습니다.그것은 오류를 던집니다.unknown type name size_t
부터libio.h
. 포함.stdio.h
. 내 코드에 나는 단지 다음을 포함하고 있을 뿐입니다.stdio.h
.
이 오류를 해결하는 방법을 알려주실 분 있나요.
C99, ≥7.17,size_t
기본 제공 형식이 아니지만 에 정의되어 있습니다.<stddef.h>
.
포함해서<stddef.h>
헤더가 당신의 문제를 해결해 줄 것입니다.
제가 ARM Linux용으로 (x86 Windows와 x86 Linux 모두에서) 빌드하기 위해 리나로 컴파일러를 사용하고 있었던 QT 프로젝트에서 저는 이와 똑같은 문제를 겪었습니다.정확히 같은 코드와 .profile을 사용하여 윈도우에서 빌드하는 데 문제가 없었지만 리눅스 박스에서 시작하여 수많은 오류가 생성되었습니다.unknown type name 'size_t'
인에libio.h
그것은 A로 거슬러 올라갑니다.#include <stdio.h>
. 나는 그 안을 들여다 보았습니다.stdio.h
(호스트 시스템이 아닌 대상 하드웨어의 sysroot에서) 몇 줄이 다운되었습니다.#include <stddef.h>
(앞서 설명)#include <libio.h>
), 그래서stddef.h
확실히 포함되어 있었습니다.하지만 좀더 조사해 보면,stddef.h
파일 크기가 1바이트로 완전히 비어 있었습니다.이것은 사실이었습니다.stddef.h
내 sysroot 및 호스트 머신에서.저는 이 파일들이 왜 비어 있었는지 전혀 모르겠습니다.
어쨌든, 알고 보니 내가 그와 관련이 없는INCLUDEPATH += /usr/include/linux
내 .profile에.내 리눅스 빌드 머신에 이것이 추가되었습니다.-I/usr/include/linux
qmake에 의해 생성된 Make 파일로 이동합니다.윈도우 빌드 머신에서 추가된 내용입니다.-isystem /usr/include/linux
qmake에 의해 생성된 Make 파일로 이동합니다.제가 이 부분에 대해 설명을 드리면, 이 줄들은 Makefiles에서 제거되어 두 빌드 머신 모두에 바로 구축되었습니다.-isystem /usr/include/linux
윈도우 빌드 기계에 문제를 일으킨 적이 없기 때문에 제거하는 데 아무런 해가 없었습니다.INCLUDEPATH += /usr/include/linux
.
이것이 왜 내 문제를 해결했는지는 잘 모르겠지만, 헤더 파일 간에 일종의 충돌이 있었던 것 같습니다.아마도 호스트 헤더 파일과 sysroot 헤더 파일을 섞거나, 어떻게든 순환 종속성을 만들었을 것입니다.GCC 문서에는 다음과 같은 내용이 포함되어 있습니다.-I
옵션은 시스템 헤더 파일보다 우선합니다.이 문제에 대해 가장 좋은 조언은 어떤 헤더 파일이 포함되어 있고 어디에서 왔는지를 자세히 살펴보는 것입니다.
둘다요.stdio.h
그리고.stdlib.h
데이터 유형을 포함size_t
. 이러한 헤더에 선언된 함수가 다음 중 하나를 사용하기 때문에 이러한 데이터 유형이 포함됩니다.size_t
매개 변수로 사용하거나 반환 형식으로 반환합니다.size_t
가입니다.typedef
으로, 로은한다해에고e해dy에 의해 반환됩니다.sizeof
교환입니다.
그리고 그 이유는sizeof
라이브러리를 C자체에 내장되어 . 어떻게 는부해지는밍어 C다에어를다n어에rs어밍는cn부는w를지해t,ome,f 그렇다면 어떻게 할 수 있습니까?size_t
이름을 알 수 없습니까?
언급URL : https://stackoverflow.com/questions/26410466/gcc-linaro-compiler-throws-error-unknown-type-name-size-t
'programing' 카테고리의 다른 글
컴파일된 .apk를 장치에 설치하려고 하면 INSTALL_FAILED_UPDATE_INCOBLATE (0) | 2023.09.13 |
---|---|
Concat 스크립트 순서대로 Gulp (0) | 2023.09.13 |
In Woocommerce에서 모든 변형의 총 재고를 가져옵니다. (0) | 2023.09.13 |
파이썬에서 ip가 네트워크에 있는지 확인하려면 어떻게 해야 합니까? (0) | 2023.09.08 |
create if not exists view? (0) | 2023.09.08 |