首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Solaris10上构建msgpack-python -仅在c99编译环境中使用<stdbool.h>有效

在Solaris10上构建msgpack-python -仅在c99编译环境中使用<stdbool.h>有效
EN

Stack Overflow用户
提问于 2012-07-13 08:19:56
回答 2查看 928关注 0票数 0

我正在尝试使用Sun编译器在Solaris上构建python模块msgpack-python,并在Python./setup.py构建过程中遇到以下错误:

代码语言:javascript
复制
/opt/SUNWspro/bin/cc -DNDEBUG -O -xO3 -m32 -xarch=sparc -I/opt/csw/include -xcode=pic32 -I/opt/csw/include/python2.6 -c msgpack/_msgpack.c -o build/temp.solaris-2.10-sun4v-2.6/msgpack/_msgpack.o
"/usr/include/stdbool.h", line 42: #error: "Use of <stdbool.h> is valid only in a c99 compilation environment."

我还尝试通过添加‘-std=c99’进行编译,就像这里提到的:Node.JS on Solaris

但最终的结果是:

cc:警告:非法选项-d=c99

任何人都知道这个stdbool.h错误是什么,以及如何解决它。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-13 08:26:44

我不知道您正在运行哪个版本的Sun Studio (当涉及到它是否支持您正在使用的Solaris10发行版时,这一点很重要),但是要获得C99模式,您可以执行以下两项操作之一:

  1. 运行命令/opt/SUNWspro/bin/c99 -这是一个包装可执行文件,它将在C99模式下启动Sun编译器。
  2. 使用-xc99 flag运行您的命令-这也将在编译器中触发C99模式:

/opt/SUNWspro/bin/cc -xc99 ...

或者,您也可以使用支持-std=c99标志选项的编译器-- GCC编译器(通常安装在/usr/sfw/bin/gcc中)来编译此C模块。如果我没记错的话,包含在Solaris中的gcc将使用Sun的ld并链接到系统上的普通libc.so,就像cc一样(对于每个编译器的C++版本来说都不是这样的)。

票数 0
EN

Stack Overflow用户

发布于 2012-07-15 06:07:18

尝试导出以下内容:

代码语言:javascript
复制
export CFLAGS="-D_XOPEN_SOURCE=500 -D__EXTENSIONS__ -features=extensions"

然后再次运行configure脚本,重新编译。我认为它不再需要C99合规性。大多数OpenSource软件都需要这个定义来切换更多系统头的OpenSource行为。

更好地使用pkgsrc来编译操作系统软件。它将自动完成这些技巧。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11462527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档