使用gcc-4.1.2在RHEL5上使用Python 2.7.1升级1.44

啊! 我遇到了其中一个我真的无能为力的错误。 我已经构build/安装Python(2.7.1),并且已经构build/安装了针对该版本pythonboost(1.44.0)。 我没有看到我的提升构build中的任何错误,一切都很好。

当我转向做我的应用程序生成有很多提升依赖,在我的C代码里面,我有一个调用Py_Init(…)我得到以下错误:

Linking CXX executable ../../../myapp_exec ../../../../../config/cmake/platforms/../../../../3rdparty/2012/<pack>/rh5_x86_64_gcc-4.1.2/boost-1.44.0/lib/libboost_python-gcc41-1_44.so: undefined reference to `Py_InitModule4' collect2: ld returned 1 exit status gmake[2]: *** [myapp_exec] Error 1 

我search了一下,但没有真正遇到一个解决scheme。 我在Windows上看不到这个问题 。 感谢任何人都可以在Linux(RHEL5)上分享他们的类似经历的经验,以及他们如何克服它。 我可以尝试使用老版本的Python(2.6.4或更早版本)来构buildboost-1.44.0。

在此先感谢您的时间和兴趣。 -T。

为什么不使用仓库和rpm / yum安装一切? 它看起来像我海湾合作委员会4.1.2(2007年)可能是太旧,以提高1.44(2010年)和类似的蟒蛇。 我想转到更新的编译器或Linux发行版(最新的RHEL为基础的linux..ie RHEL,CentOs除外)升级是要走的路。

你也运行检查升压和python,看看他们编译正确吗?

我想我已经解决了这个问题。 这基本上是在boost构建期间添加参数linkflags =“ – m64 -Wl,-E”的问题。 它似乎解决了这个问题。

添加-lpython<version>-lpython2.7解决了我的问题。

注: libpython<version>路径,例如libpython2.7.so必须使用-L指定

所以对于在/usr/lib安装库( libpython2.7.so )的python2.7,在编译使用boost的程序时,可以使用-L/usr/lib -lpython2.7作为链接选项之一