我正在尝试使用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:错误:语言代码= pic32无法识别
然后失败了。如果我删除了-xcode = pic32选项并手动执行上述命令,则模块成功编译。我需要能够以自动方式执行此操作(使用buildfarm来生成包)。问题是,如果不修改或更改当前的python或distutils,有没有办法“删除”distutils正在拾取的这个选项,所以我可以让python setup.py进程适当地构建模块(即没有pic32选项) )?
由于
答案 0 :(得分:1)
不要使用该gcc进行编译。 -xcode=pic32
是Sun Studio编译器命令行参数。即使您编译好,它也会导致链接问题。使用可以理解此类参数的SUN CoolTools gcc
进行编译,或使用Oracle Solaris Studio进行SPARC。
一些提示:
-xcode=pic32
,而是更改-m32 -fpic
-xtarget=native
)答案 1 :(得分:0)
您也可以通过设置以下env vars找到运气:
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之间存在差异。当我*FLAGS
env vars未设置时,我用Python包构建了bug。 (使用选项gcc
调用-xO2
是原因。)设置为空是有效的。