【发布时间】:2011-02-14 19:35:54
【问题描述】:
当我尝试时,我得到:
ImportError: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])
【问题讨论】:
-
您当前的链接方法看起来如何?
-
那么当前的 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]) 我试过很多不同的东西。这是尝试添加许多可能有效的 gcc 参数。
-
实际执行的编译器命令是什么? ('python setup.py build -v' 应该显示给你,如果默认情况下没有。如果它决定不重建任何东西,请删除 'build' 目录。)'-framework' 似乎是一个链接器选项,而不是编译器选项,所以你应该把它放在
extra_link_args中——但我不知道它是否重要。 -
我没有意识到我必须删除构建目录。现在它可以正确导入。谢谢你。对于需要知道您需要的任何人:extra_link_args=['-framework', 'OpenGL'] 删除构建目录并重试。它会起作用的。
-
@ThomasWouters,在我看来,您回答了这个问题。所以也许你会把你的评论变成一个答案,这样就可以接受这个问题不会永远没有答案。
标签: c++ python macos opengl distutils