python - 如何删除 python disutils 包含的编译器选项(无法识别语言代码=pic32)

标签 python gcc solaris distutils msgpack

我正在尝试在 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。

一些提示:

  1. GCC 为 SPARC 生成非常慢的代码,这就是 SUN 创建 Cool Tools 的原因。
  2. 当您坚持使用 gcc-4.7 时,您不必删除 -xcode=pic32,而是更改为 -m32 -fpic
  3. 为了获得 OSS 工具的成熟设置,我正在使用 pkgsrc使用 Studio Express 编译到特定 CPU (-xtarget=native)

关于python - 如何删除 python disutils 包含的编译器选项(无法识别语言代码=pic32),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11464013/

相关文章:

c - 改进我执行 malloc 和 free 的方式

java - 监控java中的进程

python - fit 函数中引发错误 : ValueError: The truth value of an array with more than one element is ambiguous. 使用 a.any() 或 a.all()

python - 使用一对多关系在 Django 中创建 2 种不同的用户类型

python - 在 Python 2.7 上安装 Pillow

python : Joining separated numeric characters in text but leave alphabetic texts

c++ - 在 qt 中将 QMAKE_CXXFLAGS += -std=c++11 添加到 .pro 文件不起作用(在 linux 12.04 上)

c - 字符是否作为整数传递给被调用的函数?

c - 关于 GCC 优化器的问题以及为什么这段代码总是返回 42?

python - 使用 Python 进行密码散列在 Solaris 10 和 11 上产生奇怪的结果