“error: unknown type name 'size_t'” solved while compiling with llvm-gcc

I went into erros while compiling the very simple code below with llvm-gcc:


#include <stdio.h>
int main(){
	printf("nani\n");
	return 0;
}

I got error like: “error: unknown type name 'size_t'” 


It seems that llvm-gcc cannot find the header file which defines size_t(actually the file is <stddef.h>).


I thought it was easy to settle down and added C_INCLUDE_PATH=/usr/include/:/usr/include/linux:/usr/include/i386-linux-gnu to the environment profile.

However, the errors occur still. I was confused by this because I have told llvm-gcc where to locate the header files it needs explicitly by the varible defined in environment profile.

Then I searched for <stddef.h> and found there are several versions of this file and each of them are located in different directories- one of them in /usr/include/liunx and one in another. I opened the versions of the file one by one to find the content of the files are different !!! Actually the one in /usr/include/linux DOES NOT define size_t at all !!!!


Now things get clear. By putting /usr/inlcude/linux in front of the path where the effective <stddef.h> (which defines size_t) is located, I made the compiler use the first one it encountered, that is,  /usr/include/linux/stddef.h. But there is nothing in this <stddef.h>, at least not the things the compiler needs. 


So, the very correct way to solve this problem is adding header files searching paths in the RIGHT ORDER to the environment profile. Here, I did not add /usr/include/linux at all. 


Problem solved.


And for gcc users who encounter the same all similar problems, this solution also works, I think. 

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值