啊! 我遇到了其中一个我真的无能为力的错误。 我已经构build/安装Python(2.7.1),并且已经构build/安装了针对该版本python的boost(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
作为链接选项之一