我试图用Sun编译器在Solaris上构建python模块msgpack-python,但在python中遇到了这个错误/设置.py建造:
/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:Warning:非法选项-d=c99
有谁知道stdbool.h错误是什么以及如何解决它吗。在
谢谢。在
我不知道您运行的是哪个版本的Sun Studio(这对于它是否支持您所使用的Solaris 10版本非常重要),但是要获得C99模式,您可以执行以下两种操作之一:
运行命令
/opt/SUNWspro/bin/c99
-这是一个包装器可执行文件,它将在C99模式下启动suncc编译器。使用^{} flag -运行命令,这也将在编译器中触发C99模式:
/opt/SUNWspro/bin/cc -xc99 ...
或者,您也可以使用GCC编译器(通常安装在
/usr/sfw/bin/gcc
)来编译这个C模块,它是支持-std=c99
标志选项的编译器。如果我记得我的Solaris工作正确,Solaris中包含的^ {CD6}}将使用Sun的{{7CD> },并且链接到系统上的正常^ ^ {CD8}},就像^ {CD9}}将(对于每个编译器的C++版本完全不成立)。在尝试以下导出:
然后再次运行
configure
脚本,重新编译。我认为它不再需要符合C99标准了。大多数开源软件都需要这个定义来切换系统头的更多开源行为。在更好地使用pkgsrc编译操作系统软件。它会自动地做这样的把戏。在
相关问题 更多 >
编程相关推荐