2012-07-27 88 views
1

我试图编译PHP在我的Mac OS X 10.8,我得到以下问题:Clang是否允许预处理器==?

In file included from /Users/ryan/Downloads/php-5.4.5/ext/phar/util.c:23: 
ext/phar/phar_internal.h:223:19: error: invalid token at start of a preprocessor 
     expression 
# if SIZEOF_SHORT == 2 
       ^

我不知道为什么这个错误发生,因为这看起来好像没什么问题。我打开了头文件,如果没有,或者可以进行更改,或者将它们全部删除,因为我知道我的系统应该是什么,但我想知道这是否是解决此问题的正确方法。

+0

如何SIZEOF_SHORT定义?铛给“#if == 2”同样的错误。 – servn 2012-07-28 08:09:55

回答

0

它看起来像SIZEOF_SHORT扩展为无标记。您应该调查SIZEOF_SHORT的位置#define d(可能位于命令行-DSIZEOF_SHORT=),并修复该错误以提供正确的值。

或者,你可以这样做:

#include "limits.h" 
/* ... */ 
#if SHRT_BIT == CHAR_BIT * 2 
0

我没有真正找到解决这个问题的方法,但是我删除了if并留下了无论如何都会被处理的行,并且程序编译得很好。我真的不知道这个文件有什么问题。