Это, вероятно, очень легко, когда вы знаете, как, но я не знаю :)
Я пытаюсь создать некоторый код, который использует opengl / glut.Я использую Cygwin-версию cmake opengl и т. Д. Единственная ссылка, которую я вижу на 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 сгенерировать эту команду для меня, поэтому никаких ручных шагов не требуется.Любые идеи, что я должен делать?
Приветствия,
Роб