3

以下是我的 cmake 文件,在该文件上出现错误“找不到 GLUT(缺少:GLUT_glut_LIBRARY)”。我想我的目标链接库有问题。我到底做错了什么?

cmake_minimum_required(VERSION 2.6)

SET(MY_PROJECT_NAME Test_1)
SET(MY_SOURCE_FILES Task_1.cpp)
SET(GLUT_INCLUDE_DIR C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\GL)
SET(GLUT_LIBRARY C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib\glut32.lib)

project(${MY_PROJECT_NAME})

# required libraries
find_package(OpenGL REQUIRED)
find_package(GLUT   REQUIRED)

# include directories
include_directories(
    ${GLUT_LIB_DIR}
    ${OPENGL_INCLUDE_DIR}
    ${GLUT_INCLUDE_DIR}
)

# source code files (sources *and* headers )
add_executable(${MY_PROJECT_NAME}
    ${MY_SOURCE_FILES}
)

# link against these libraries
target_link_libraries(${MY_PROJECT_NAME}
    ${GLUT_LIBRARY} 
    ${OPENGL_LIBRARY}
)
4

1 回答 1

3

不要将路径硬编码到 CMakeLists 中!它违背了 CMake 作为可移植构建系统的全部目的。

如果您想覆盖由 CMake 的 find 脚本获得的值,请通过命令行或 cmake UI 之一(ccmakecmake-gui)提供这些值。

还要确保至少检查您使用的所有查找模块的文档,如果仍然存在问题,请直接转到源代码。例如,GLUT_LIB_DIR您使用的变量不存在。此外,请注意 find 脚本使用该GLUT_ROOT_PATH变量作为 Windows 上本地 GLUT 安装位置的提示。

最后,确保 GLUT 实际安装在您的机器上。默认情况下, Visual C++ 不附带GLUT,因此您可能必须先下载并自己构建它。

于 2013-11-04T08:41:01.080 回答