python - 关于boost-python : dyld: Symbol not found: _PyBaseObject_Type

标签 python c++ boost ld boost-python

当我运行我的代码时,我遇到了一个关于 boost-python 的问题。就像这样:

dyld: Symbol not found: _PyBaseObject_Type
Referenced from: /opt/local/lib/libboost_python-mt.dylib
Expected in: flat namespace

我的项目几个月前就可以正常运行了。但是现在,当我重新配置环境时,它无法运行。

-几个月前,我用homebrew配置环境,就像这样:

brew install boost
brew install python
brew install boost-python
brew install opencv(My project is an Opencv project)

-但是现在,它不起作用并且错误与上面一样。所以我使用 Macports 安装 boost,像这样:

sudo port install boost
sudo port install py27-pip
sudo port select --set python python27
sudo port select --set pip pip27
sudo port install py27-numpy
brew install opencv(The version of opencv in port is 3.0, so i use brew)

-但它有同样的问题。

谁知道如何处理这个问题?是关于boost-python的吗?我应该如何正确安装 boost-python?是关于boost/boost-python的版本吗?

最佳答案

你没有提到你的 boost 版本和/或你的编译器。但是我发现a very similar issue在 Python 的错误跟踪器上。

由于您似乎使用了 ld 链接器,因此您应该尝试将您的代码与 -Wl,--export_dynamic 链接。

关于python - 关于boost-python : dyld: Symbol not found: _PyBaseObject_Type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33094585/

相关文章:

python - 将一个 pandas 数据框中的值替换为另一个数据框中的值

python - 如何从 C 中找到 Python 函数的参数数量?

python - 如何将包含键的字典和包含各个键的数据的列表中的数据保存为 csv 文件

c++ - D3DXLoadSurfaceFromFile 导致程序过早关闭

c++ - mutex.timed_lock(duration) 和 boost::timed_mutex::scoped_lock 之间的区别 scoped_lock(mutex, duration)

python - 如何将 args 传递给 sublime_plugin.WindowCommand 的实例?

c++ tcp 多线程客户端/服务器 - 如何与线程 sockethandler 通信?

C++ 错误。这个指针的概念问题

c++ - 链接错误libboost_filesystem-vc140-mt-1_61.lib,但我有boost_filesystem-vc140-mt-1_61.lib

c++ - boost::asio::strand::dispatch(handle) 还是直接调用句柄?