Freeglut-3.0.0使用cmake(MinGW makefiles)和mingw构建,然后成功安装到C:/Program Files (x86)/freeglut
,使用mingw32-make install
命令。
我的CMakeLists.txt
文件如下:
cmake_minimum_required(VERSION 3.7)
project(math_tests)
set(TESTS_SOURCES tests.cpp gl_core_3_3.c)
set(CMAKE_CXX_STANDARD 11)
# GLUT
find_package(GLUT REQUIRED)
include_directories(${GLUT_INCLUDE_DIR})
if(NOT GLUT_FOUND)
message(ERROR "GLUT not found!")
endif(NOT GLUT_FOUND)
# OpenGL
find_package(OpenGL REQUIRED)
include_directories(${OpenGL_INCLUDE_DIRS})
link_directories(${OpenGL_LIBRARY_DIRS})
add_definitions(${OpenGL_DEFINITIONS})
if(NOT OPENGL_FOUND)
message(ERROR "OPENGL not found!")
endif(NOT OPENGL_FOUND)
add_executable(tests ${TESTS_SOURCES})
target_link_libraries(tests math ${GLUT_LIBRARIES} ${OPENGL_LIBRARIES})
现在CMake打印错误:无法找到GLUT(缺少:GLUT_glut_LIBRARY)。
我弄不清楚我哪里做错了。
if (WIN32)
语句中设置OPENGL_LIBRARY_DIR。 - slavust"lib/<freeglutlibrary>"
的上级目录,比如在您的具体情况下设置为"c:/program files (x86)/freeglut"
。在您的CMake中最好避免使用具体的SET
命令,而是让最终用户在配置时使用-DCMAKE_PREFIX_PATH=<your path>
来设置正确的前缀。或许使用OPTIONS让最终用户设置一个特定的freeglut路径也是合理的(并且选项的值会由您的脚本附加到CMAKE_PREFIX_PATH
)。 - Luca Cappa