MacOSX + Boost_Python + PyFTGL: - 未找到符号,预期在:flat namespace

Jam*_*der 8 python macos importerror boost-python ftgl

我正在尝试在MacOSX Yosemite上安装PyFTGL.

我使用的python版本是来自macports的2.7.我从macports安装了boost + python27.

要安装从源代码构建的PyFTGL,并从以下位置编辑setup.py文件:

module_ftgl_libs = [
    'GLU',
    'GL',
    'freetype',
    'z',
    'ftgl',
    'boost_python',
    ]

 module_ftgl = Extension(
    'FTGL',
    module_ftgl_src,
    include_dirs=module_ftgl_include_dirs,
    libraries=module_ftgl_libs
    )
Run Code Online (Sandbox Code Playgroud)

至:

 module_ftgl_libs = [
    'freetype',
    'z',
    'ftgl',
    'boost_python',
    ]

 module_ftgl = Extension(
    'FTGL',
    module_ftgl_src,
    include_dirs=module_ftgl_include_dirs,
    libraries=module_ftgl_libs,
    extra_link_args=['-framework', 'OpenGL', '-framework', 'GLUT']
    )
Run Code Online (Sandbox Code Playgroud)

然后我构建setup.py文件并将生成的FTGL.so文件复制到与使用FTGL函数的python代码test.py相同的文件夹中.

我的问题是,当我现在运行我的代码时,我收到以下错误:

Traceback (most recent call last):
  File "test.py", line 29, in <module>
    import FTGL
ImportError: dlopen(/Users/james/Desktop/test/FTGL.so, 2): Symbol not found:__ZN5boost6python7objects15function_objectERKNS1_11py_functionERKNSt3__14pairIPNS0_6detail7keywordESA_EE
  Referenced from: /Users/james/Desktop/test/FTGL.so
  Expected in: flat namespace
 in /Users/james/Desktop/test/FTGL.so
Run Code Online (Sandbox Code Playgroud)

我不太了解链接,setup.py文件和提升,我花了很长时间研究Google和Stack Overflow,但现在我无法弄清楚问题.

kil*_*les 1

我能够通过卸载所有 boost 库然后使用brew install boost155 --with-python --with-mpi --without-single并从自制 gcc/g++-5 切换到 gcc/g++-4.9 来克服此错误

如果可能的话,转到brew edit boost155并替换布局taggedsystem