2015-04-20 5 views
0

Я хотел бы библиотеки OpenGL настройки и запустить простой GL программка:Не удается скомпилировать GLUT HelloWorld с MinGW

#include <windows.h> 
#include <Gl/glut.h> 

int main() 
{ 
    glClearColor (0.0, 0.0, 0.0, 0.0); 
    glClear (GL_COLOR_BUFFER_BIT); 
    glColor3f (1.0, 1.0, 1.0); 
    glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0); 
    glBegin(GL_POLYGON); 
    glVertex3f (0.25, 0.25, 0.0); 
    glVertex3f (0.75, 0.25, 0.0); 
    glVertex3f (0.75, 0.75, 0.0); 
    glVertex3f (0.25, 0.75, 0.0); 
    glEnd(); 
    glFlush(); 
    return 0; 
} 

Я строю проект с использованием CLion и поэтому вот мой CMakeLists.txt:

cmake_minimum_required(VERSION 3.1) 
project(MuspellsheimR) 

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 

set(SOURCE_FILES main.cpp) 
add_executable(MuspellsheimR ${SOURCE_FILES}) 

Я скачал GLUT here и положить glut.dll в C: \ Windows \ SysWOW64 (и в C: \ Windows \ System32 на всякий случай), glut.h в C: \ MinGW \ включать \ GL и glut32.lib в C: \ MinGW \ lib. Вот исходящее сообщение я получаю:

CMakeFiles\ProjectName.dir/objects.a(main.cpp.obj): In function `glutInit_ATEXIT_HACK': 
c:/mingw/include/gl/glut.h:486: undefined reference to `[email protected]' 
CMakeFiles\ProjectName.dir/objects.a(main.cpp.obj): In function `glutCreateWindow_ATEXIT_HACK': 
c:/mingw/include/gl/glut.h:503: undefined reference to `[email protected]' 
CMakeFiles\ProjectName.dir/objects.a(main.cpp.obj): In function `glutCreateMenu_ATEXIT_HACK': 
c:/mingw/include/gl/glut.h:549: undefined reference to `[email protected]' 
CMakeFiles\ProjectName.dir/objects.a(main.cpp.obj): In function `main': 
PATH/main.cpp:7: undefined reference to `[email protected]' 
PATH/main.cpp:8: undefined reference to `[email protected]' 
PATH/main.cpp:10: undefined reference to `[email protected]' 
PATH/main.cpp:11: undefined reference to `[email protected]' 
PATH/main.cpp:12: undefined reference to `[email protected]' 
PATH/main.cpp:13: undefined reference to `[email protected]' 
PATH/main.cpp:14: undefined reference to `[email protected]' 
PATH/main.cpp:15: undefined reference to `[email protected]' 
PATH/main.cpp:16: undefined reference to `[email protected]' 
PATH/main.cpp:17: undefined reference to `[email protected]' 
+2

какие сообщения об ошибках вы получаете? –

+0

@ м.с. ах, вы, конечно. Добавление в сообщение. – omtcyfz

+2

Никогда не помещайте такие вещи, как 'glut.dll' в' C: \ Windows'. Когда-либо. Просто поставьте его рядом с вашим исполняемым файлом. – rubenvb

ответ

2

Обычно вы позволяете CMake обрабатывать зависимости с помощью find_package. Вам, кажется, не хватает ссылки на соединение:

project(MuspellsheimR) 
find_package(OpenGL REQUIRED) 
find_package(GLUT REQUIRED) 
set(SOURCE_FILES main.cpp) 
include_directories(${OPENGL_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS}) 
add_executable(MuspellsheimR ${SOURCE_FILES}) 
target_link_libraries(MuspellsheimR ${OPENGL_LIBRARIES} ${GLUT_LIBRARY}) 
+0

хорошо, теперь я получил 'No rule to make target 'C: /Windows/System32/glut32.dll', необходимый для 'executable.exe'. Stop.' – omtcyfz

+2

@arcadia У вас есть этот файл? В любом случае, после вашего 'find_package', добавьте' сообщение (STATUS "GLUT_LIBRARY = $ {GLUT_LIBRARY}") 'и опубликуйте свой вывод cmake – Antonio

+0

@Antonio, я получаю' GLUT_LIBRARY = C:/Windows/System32/glut32.dll' , а затем тот же самый 'mingw32-make.exe [3]: *** Нет правила для создания цели 'C: /Windows/System32/glut32.dll', необходимой для 'MuspellsheimR.exe'. Стоп. mingw32-make.exe [2]: *** [CMakeFiles/MuspellsheimR.dir/all] Ошибка 2 mingw32-make.exe [1]: *** [CMakeFiles/MuspellsheimR.dir/rule] Ошибка 2' – omtcyfz

Смежные вопросы