当前位置: 技术问答>linux和unix
二进制数计算出问题
来源: 互联网 发布时间:2016-04-03
本文导语: 1、在64位机上编译程序碰到这样一个错误 ../../ipa_link/libiberty/objalloc.c: In function `objalloc_create': ../../ipa_link/libiberty/objalloc.c:106: warning: implicit declaration of function `__builtin_offsetof' ../../ipa_link/libiberty/objalloc.c:106: error:...
1、在64位机上编译程序碰到这样一个错误
../../ipa_link/libiberty/objalloc.c: In function `objalloc_create':
../../ipa_link/libiberty/objalloc.c:106: warning: implicit declaration of function `__builtin_offsetof'
../../ipa_link/libiberty/objalloc.c:106: error: syntax error before "struct"
make[3]: *** [objalloc.o] Error 1
2、源代码:
105 ret->current_ptr =(char *) chunk
106 + CHUNK_HEADER_SIZE;
3、其中出错的原因是CHUNK_HEADER_SIZE,定义如下:
#define CHUNK_HEADER_SIZE
((sizeof (struct objalloc_chunk) + OBJALLOC_ALIGN - 1)
&~ (OBJALLOC_ALIGN - 1))
4、
感觉是只要(OBJALLOC_ALIGN - 1) &~ (OBJALLOC_ALIGN - 1)就会有问题
ret->current_ptr 为char *
chunk 为 stuct objalloc_chunk *
../../ipa_link/libiberty/objalloc.c: In function `objalloc_create':
../../ipa_link/libiberty/objalloc.c:106: warning: implicit declaration of function `__builtin_offsetof'
../../ipa_link/libiberty/objalloc.c:106: error: syntax error before "struct"
make[3]: *** [objalloc.o] Error 1
2、源代码:
105 ret->current_ptr =(char *) chunk
106 + CHUNK_HEADER_SIZE;
3、其中出错的原因是CHUNK_HEADER_SIZE,定义如下:
#define CHUNK_HEADER_SIZE
((sizeof (struct objalloc_chunk) + OBJALLOC_ALIGN - 1)
&~ (OBJALLOC_ALIGN - 1))
4、
感觉是只要(OBJALLOC_ALIGN - 1) &~ (OBJALLOC_ALIGN - 1)就会有问题
ret->current_ptr 为char *
chunk 为 stuct objalloc_chunk *
|
呵呵,不是很明白。
|
应该不是4的问题,报的是语法错误,应该跟64位机没什么干系,应该是有其它浅显的错误没发现。使用这个宏的时候有没有包括定义结构stuct objalloc_chunk的头文件?