在PHP的Zend引擎代码中,我在头文件中看到如下所示的行。
ZEND_API char *zend_strndup(const char *s, unsigned int length) ZEND_ATTRIBUTE_MALLOC;
我是专业的C / C ++编程新手。
当我尝试使用gcc编译此包中的c文件时,我得到错误
zend_alloc.h:55: error: expected =, ,, ;, asm or __attribute__ before char
我尝试了命令gcc -I./ -I../TSRM zend_language_*.c
看起来gcc抱怨ZEND_API。 ZEND_API表示什么? 任何人都可以帮我弄清楚为什么会发生这种错误?
文件所在的SVN存储库。
这些文件是PHP解释器的一部分,并不打算与它分开编译。 configure脚本应该将ZEND_API
宏定义为:
__attribute__ ((visibility("default")))
在支持它的系统上(例如,GCC 4.0+),在其他编译器上没有任何内容。
如果您只是尝试构建PHP,请从php.net下载整个源代码包并使用configure
/ make
来构建它。 构建过程很复杂,并不是要显而易见(甚至可能)手动运行。
以上就是c/c++开发分享GCC抱怨非标准呼叫约定“ZEND_API”相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/522180.html