You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows系统CLion配置OpenGL&GLUT后运行报错求助

解决OpenGL/GLUT项目CMake构建失败问题

嘿,咱们一步步来解决这个问题——从错误信息来看,核心是DLL文件复制路径出错,另外你的CMake配置还有几处可以优化的地方,具体如下:

一、先搞定DLL复制失败的核心问题

错误提示Error copying file "LW1/OpenGL/dll/glut32.dll" to ...,这是因为你用了相对路径,但CMake的工作目录和你预想的不一致,导致找不到文件。

  • 修正路径写法:用CMake内置的CMAKE_CURRENT_SOURCE_DIR变量获取项目根目录的绝对路径,不管构建目录在哪都能准确定位到DLL。把add_custom_target那行改成:
add_custom_target(glutdlllib COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/OpenGL/dll/glut32.dll ${CMAKE_BINARY_DIR} )
  • 确认文件存在:一定要确保${CMAKE_CURRENT_SOURCE_DIR}/OpenGL/dll/这个目录下确实有glut32.dll,如果你的DLL放在了其他位置,对应调整路径即可。

二、清理CMake里的冗余链接配置

你的CMakeLists里有重复的链接指令,而且库的命名可能和环境不匹配:

  • 你已经定义了OpenGlLibs变量包含glut32,但后面又加了target_link_libraries(LW1 -lOpenGL32 -lfreeGLUT),这会导致重复链接甚至冲突,直接删掉这一行。
  • 如果你用的是MinGW环境,GLUT的标准库名是freeglut而非glut32(现在大部分环境用的都是freeGLUT),所以把OpenGlLibs修改为:
set(OpenGlLibs glu32 opengl32 freeglut)

(如果你的GLUT是旧版的glut32,就保留glut32,但更推荐用freeGLUT)

三、优化头文件与库文件路径配置

include_directories是用来指定头文件(.h)目录的,你加了OpenGL/lib完全没必要,库文件路径应该用link_directories来指定:

  • 添加库文件路径:
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/OpenGL/lib)
  • 删掉多余的include_directories(OpenGL/lib),避免混淆。

四、代码层面的小优化

你的main.cpp里包含了<glaux.h>,但代码里并没有用到glaux库的功能,删掉这行可以减少不必要的依赖:

// 删掉这一行
#include <GL/glaux.h>

修改后的完整CMakeLists.txt

project(LW1)
set(CMAKE_CXX_STANDARD 17)

# 指定头文件目录
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/OpenGL/include)

# 指定库文件目录
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/OpenGL/lib)

# 复制GLUT DLL到构建目录
add_custom_target(glutdlllib COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/OpenGL/dll/glut32.dll ${CMAKE_BINARY_DIR} )

# 链接的库列表(根据GLUT版本调整freeglut/glut32)
set(OpenGlLibs glu32 opengl32 freeglut)

# 生成可执行文件并链接库
add_executable(LW1 main.cpp)
target_link_libraries(LW1 ${OpenGlLibs})
add_dependencies(LW1 glutdlllib)

做完这些修改后,重新构建项目应该就能解决问题了。

内容的提问来源于stack exchange,提问作者anichaaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 08:12:54