我正在尝试在 solaris 10 上使用 gcc (v4.7) 编译 msgpack-python python 模块。安装的 python 是 2.6.8。 Distutils 自动选择了一个我想从命令中删除的不正确的编译器选项 (-xcode=pic32)。
distutils 放在一起的完整命令是:
/opt/csw/bin/gcc-4.7 -DNDEBUG -O -O2 -pipe -mcpu=v9 -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
但会产生此错误:
gcc-4.7: error: language code=pic32 not recognized
然后失败了。如果我删除该 -xcode=pic32 选项并手动执行上述命令,模块将成功编译。
不过,我需要能够以自动化方式执行此操作(使用 buildfarm 来生成包)。问题是,在不修改或更改当前的 python 或 distutils 的情况下,有没有办法“删除”distutils 正在选择的这个选项,这样我就可以让 python setup.py 进程适本地构建模块(即没有 pic32 选项)?
谢谢
最佳答案
不要用那个 gcc 编译。 -xcode=pic32
是 Sun Studio 编译器命令行参数。它也会导致链接问题,即使你编译 OK。用 SUN CoolTools 编译gcc
可以理解这样的参数,或者用Oracle Solaris Studio对于 SPARC。
一些提示:
- GCC 为 SPARC 生成非常慢的代码,这就是 SUN 创建 Cool Tools 的原因。
- 当您坚持使用 gcc-4.7 时,您不必删除
-xcode=pic32
,而是更改为-m32 -fpic
- 为了获得 OSS 工具的成熟设置,我正在使用 pkgsrc使用 Studio Express 编译到特定 CPU (
-xtarget=native
)
关于python - 如何删除 python disutils 包含的编译器选项(无法识别语言代码=pic32),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11464013/