我想在Mac OSX 10.6.5上编译一个包。该包的安装脚本依赖于distutils。问题是计算机的默认gcc是4.2版本(我通过在终端窗口中运行gcc --version来确定),但是当我运行'python setup.py build'时,我从输出中看到distutils选择gcc -4.0而不是4.2这是一个很大的问题,因为我使用的代码需要gcc> = 4.2。我没有这台机器的管理员权限,所以作为一个工作区,我创建了一些将gcc-4.0发送到gcc-4.2的符号链接。结果是代码编译,但生成的.so文件不起作用(当我尝试在python中导入它们时,出现抱怨共享对象中缺少初始化函数的错误)。Python distutils不使用正确版本的gcc
我试过在不同的mac上编译这段代码(10.6.6),它的工作方式就像一个魅力:distutils选择4.2而不必强迫这样做,我可以导入生成的共享对象,而不会出现问题。所以,我想要做的是在我的电脑上编译代码,而不必执行这种符号链接技巧......我只想让distutils自动选择4.2。我已经尝试过将.so文件正确编译并将它们传输到我的计算机,但由于许多原因(它们与我的计算机上不存在的库链接,是与安装的版本不同的版本)失败。
有没有人有任何建议吗?
感谢, 乔希
这似乎并不奏效。有效的编译器只是'gcc'。在版本中投掷不起作用 - 它会抛出一个错误,说它不知道如何使用gcc42进行构建。 – 2011-05-11 16:10:01
应该可能是'--compiler = gcc-4.2' – cdarke 2011-05-11 16:11:44
不幸的是,这仍然没有帮助。如果您检查distutils.ccompiler,可用的选项是“unix”或“minwg”。它似乎没有注意到版本的东西。 – 2011-05-11 16:25:13