windows - CMake 找不到 freeglut-3.0.0

标签 windows cmake freeglut

Freeglut-3.0.0 是使用 cmake(MinGW makefiles)和 mingw 构建的,然后使用 mingw32-make install 成功安装到 C:/Program Files (x86)/freeglut.

我的 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 打印错误:Could NOT find GLUT (missing: GLUT_glut_LIBRARY).

我不知道我做错了什么。

最佳答案

您的 CMakeLists.txt 文件声明

find_package(GLUT REQUIRED)

将从 FindGLUT.cmake 执行这段代码

find_library( GLUT_glut_LIBRARY NAMES glut glut32 freeglut
    PATHS
    ${OPENGL_LIBRARY_DIR}
    ${GLUT_ROOT_PATH}/Release
    )

find_library 在您的场景中无法找到任何 glut glut32 freeglut 库,因为它不知道它们在哪里(对您来说在 C:/Program Files (x86)/freeglut).

在您的情况下,您可以将 ${OPENGL_LIBRARY_DIR} 设置到正确的目录,即包含 freeglut.dll 文件的目录,例如:

set(OPENGL_LIBRARY_DIR "C:/Program Files (x86)/freeglut/lib")

假设文件位于 C:/Program Files (x86)/freeglut/lib 目录下。

关于windows - CMake 找不到 freeglut-3.0.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44335620/

相关文章:

Windows 图形用户界面自动化

mysql - 为什么在删除 MySQL 表的某些行后我的可用磁盘空间减少了?

c++ - CMake Qt 模块禁用异常处理

c++ - 如何在 Windows 机器上构建或安装 freeglut

c - Windows cmake 找不到 memset 或其他标准函数

Python 将 32 位指针地址传递给 C 函数

linux - 由cmake构建后如何运行程序?

opengl:如何显示 cometd 及其追踪的路径?

c++ - 奇怪的 OpenGL 片段着色器行为与 gl_PointCoord

c++ - 父级的 HWND 无效