如何在Mac OSX上使用distutils编译OpenGL与Python C++扩展?

25 投票
1 回答
1248 浏览
提问于 2025-04-15 22:16

当我尝试时,我遇到了这个错误:

导入错误: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']。删除构建目录后再试一次,就能正常工作了。

撰写回答