繁体   English   中英

链接计算着色器

[英]Linking compute shader

我尝试编译这个小例子 ,执行make时遇到此错误:

g++ -o ogl_cs_example main.cpp opengl_cs.cpp opengl_util.cpp -Wall -Iinclude -lX11 -lGL -lGLU
/tmp/ccFLIOt2.o: In function `updateTex(int)':
main.cpp:(.text+0xc6): undefined reference to `glDispatchCompute'
/tmp/ccQ8pShN.o: In function `genTexture()':
opengl_util.cpp:(.text+0x3df): undefined reference to `glBindImageTexture'
/tmp/ccQ8pShN.o: In function `initGL()':
opengl_util.cpp:(.text+0x7dd): undefined reference to `glXCreateContextAttribsARB'
collect2: error: ld returned 1 exit status
make: *** [example] Error 1

我想念什么?

这些功能都是平台的最小实现未提供的所有OpenGL / GLX扩展。

您必须在运行时使用glXGetProcAddress (...)加载它们,它们不包含在您直接链接到的任何库中。 尽管您可以链接到诸如GLEW之类的扩展管理库来为您完成繁琐的工作,但是您仍然要做的不只是添加新的链接依赖项。

创建OpenGL渲染上下文后,通常必须初始化所述库。 值得指出的是,使WGL(Windows)和GLX(X11)脱颖而出的一件事是,您无需先创建GL上下文即可加载GLX的扩展,因此您实际上可以先加载glXCreateContextAttribsARBglDispatchComputeglBindImageTexture你有一个背景。 但是,您获得的后两个函数指针在运行时是否会做任何事情是另一回事,并且取决于您创建的上下文的功能。

未定义的引用意味着您没有链接到库

您忘记了链接。 如果使用的是GLEW,请确保链接到glew32.lib(或libglew32.a或适用于您系统的任何文件)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM