【发布时间】:2010-11-13 16:03:12
【问题描述】:
当你知道怎么做时这可能很容易,但我不知道:)
我正在尝试构建一些使用 opengl/glut 的代码。我正在使用 cmake opengl 等的 cygwin 版本。我看到的对 opengl/gult 的唯一参考是在 CMakeLists.txt 中:
find_package(OpenGL REQUIRED)
find_package(GLU REQUIRED)
find_package(GLUT REQUIRED)
在链接阶段之前一切正常,最后是:
CMakeFiles/glview.dir/glview.c.o: In function `DrawGLScene': /cygdrive/C/code/libfreenect/examples/glview.c:88: undefined reference to `__imp__glutSwapBuffers@0'
CMakeFiles/glview.dir/glview.c.o: In function `keyPressed': /cygdrive/C/code/libfreenect/examples/glview.c:96: undefined reference to `__imp
etc.
在谷歌搜索之后我发现了这一点,因为 cmake 正在向链接器提供 -lglut 标志,而它应该向它提供 -lgut32 标志。通过手动执行链接命令,我可以构建程序:
/usr/bin/gcc.exe -Wall -O3 -g -Wl,--enable-auto-import CMakeFiles/glview.dir/glview.c.o -o glview.exe -Wl,--out-implib,libglview.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -L/cygdrive/C/code/libfreenect/lib ../lib/libfreenect.a -lGL -lGLU -lglut32 -lm -lpthread -lusb-1.0
但我不知道如何让 cmake 为我生成此命令,因此不需要手动步骤。有什么想法我应该做什么?
干杯,
罗伯
【问题讨论】: