如何删除python disutils包含的编译器选项(language code=pic32 not recognized)

2024-05-19 02:50:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在solaris10上用gcc(v4.7)编译msgpack 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:错误:无法识别语言代码=pic32

然后失败了。如果我删除-xcode=pic32选项并手动执行上面的命令,那么模块将成功编译。

不过,我需要能够以自动化的方式实现这一点(使用buildfarm来生成包)。问题是,在不修改或更改当前python或distutils的情况下,有没有一种方法可以“删除”distutils正在使用的选项,这样我就可以拥有python了设置.py适当地处理构建模块(即没有pic32选项)?

谢谢


Tags: 模块命令csw编译器include选项错误msgpack
2条回答

您也可以通过设置以下环境变量来找到运气:

export CC=$gcc_dir_path  # Example: /usr/bin/gcc
export CXX=$gxx_dir_path  # Example: /usr/bin/g++
export CFLAGS=''
export CPPFLAGS=''
export CXXFLAGS=''
export LDFLAGS=''

注意:unset env var和set as empty env var之间有区别。当我的*FLAGSenv vars未设置时,我对Python包有构建错误。(使用选项-xO2调用gcc是原因。)设置为空起了作用。在

不要用那个gcc编译。-xcode=pic32是Sun Studio编译器命令行参数。它也会导致链接问题,即使你编译得很好。使用可以理解此类参数的SUN CoolToolsgcc进行编译,或者对SPARC使用Oracle Solaris Studio。在

一些提示:

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

相关问题 更多 >

    热门问题