如何在Mac OSX上使用distutils编译OpenGL与Python C++扩展?
当我尝试时,我遇到了这个错误:
导入错误:dlopen(/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/cscalelib.so, 2):找不到符号:_glBindFramebufferEXT 来源于:/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/cscalelib.so 在:动态查找中预期
我在setup.py文件中尝试了各种方法。我到底需要在里面放什么才能正确链接到OpenGL?我的代码编译得很好,所以没必要把它放在这里。这是setup.py的内容:
from distutils.core import setup, Extension
module1 = Extension('cscalelib',
extra_compile_args = ["-framework OpenGL", "-lm", "-lGL", "-lGLU"],
sources = ['cscalelib.cpp'])
setup (name = 'cscalelib',
version = '0.1',
description = 'Test for setup_framebuffer',
ext_modules = [module1])
1 个回答
4
我之前没意识到需要删除构建目录。现在导入正常了。
给需要的人提示一下,你需要加上:extra_link_args=['-framework', 'OpenGL']
。删除构建目录后再试一次,就能正常工作了。