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

CMake项目引入GLFW外部库编译失败求助

问题原因及解决方法

你的问题出在导入GLFW库时的头文件路径配置错误,具体有两个核心问题:

  1. 属性使用错误:对于导入的静态库,需要用INTERFACE_INCLUDE_DIRECTORIES指定头文件路径——这个属性的作用是让链接该库的目标(比如你的hello可执行文件)自动继承头文件搜索路径。而你用的INCLUDE_DIRECTORIES是针对目标自身编译时的路径配置,导入的静态库不需要编译,所以这个属性完全无效。

  2. 路径指向错误:从项目结构来看,GLFW/glfw3.h实际位于${CMAKE_SOURCE_DIR}/external/GLFW/include目录下,你当前设置的${CMAKE_SOURCE_DIR}/external让编译器找不到GLFW子目录下的头文件。

修改后的CMakeLists.txt代码

cmake_minimum_required(VERSION 3.9.1)
project(TEST)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

add_library(GLFW STATIC IMPORTED GLOBAL)
set_target_properties(GLFW PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/external/GLFW/libglfw3.a )
# 修正属性类型与路径指向
set_target_properties(GLFW PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/external/GLFW/include)

add_executable(hello ${CMAKE_SOURCE_DIR}/src/main.cpp)

target_link_libraries(hello GLFW)

修改后重新执行CMake生成Makefile,再运行make即可正常编译。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 12:37:12