呃!我遇到了其中一个我真的一无所知的错误。我已经构建/安装了 Python (2.7.1),并且针对该版本的 python 构建/安装了 boost (1.44.0)。我在我的 boost 构建中没有看到任何错误,一切都很顺利。
当我开始构建具有大量 boost 依赖性的应用程序时,在我的 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
我用谷歌搜索了一下,但没有找到真正的解决方案。 我在 Windows 上没有看到此问题。如果有人可以分享他们在 Linux (RHEL5) 上遇到类似问题的经验以及他们如何克服它,我们将不胜感激。我可以尝试针对较旧版本的 Python(2.6.4 或更早版本)构建 boost-1.44.0。
预先感谢您的时间和兴趣。 -T。
最佳答案
为什么不使用存储库和 rpm/yum 安装所有内容?在我看来,gcc 4.1.2(2007) 对于 boost 1.44(2010) 来说可能太旧了,Python 也类似。我认为迁移到更新的编译器或 Linux 发行版(最新的基于 RHEL 的 linux..i.e RHEL 、CentOs exc..)升级是正确的选择。
您是否还对 boost 和 python 运行 make check 以查看它们是否正确编译?
关于c++ - 使用 gcc-4.1.2 在 RHEL5 上使用 Python 2.7.1 boost 1.44,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12102266/