Ubuntu 16.04 LTS编译代码时glfw3.h找不到的错误如何解决?
这个问题我在Ubuntu老版本上碰过好多次,其实解决起来思路很清晰——就是你的系统里缺少GLFW3的开发头文件和库文件,下面给你两种靠谱的解决办法,优先用第一种:
1. 优先用APT安装官方开发包(最简单高效)
Ubuntu 16.04的官方软件源里已经打包好了GLFW3的开发组件,直接执行下面的命令就能安装:
sudo apt update sudo apt install libglfw3-dev
安装完成后,再去编译你的代码,应该就能顺利找到GLFW/glfw3.h了。如果这时候你用locate glfw3.h还是搜不到结果,那是因为locate的数据库没更新,执行下面的命令刷新一下就行:
sudo updatedb
之后再搜就能看到头文件默认安装在/usr/include/GLFW/glfw3.h,正好匹配你代码里的#include <GLFW/glfw3.h>路径。
2. 手动编译安装最新版GLFW3(适用于官方包版本不够的情况)
要是你需要的GLFW3功能在官方源的版本里没有,或者安装过程中出了问题,可以手动编译源码安装:
- 先装编译需要的依赖工具和库:
sudo apt update sudo apt install cmake xorg-dev libgl1-mesa-dev
- 克隆GLFW的官方仓库(也可以去官网下载源码压缩包解压):
git clone https://github.com/glfw/glfw.git cd glfw mkdir build cd build
- 用CMake配置编译参数,默认会把文件安装到
/usr/local目录(编译器默认会搜索这个路径):
cmake .. make -j$(nproc) # 用所有CPU核心编译,加快速度 sudo make install
安装完成后,头文件会放在/usr/local/include/GLFW/glfw3.h,你的代码不需要做任何修改就能正常编译。
额外提醒
编译代码的时候,别忘了链接GLFW库,比如用g++编译的话,要加-lglfw参数,还要加上OpenGL的库-lGL,示例命令:
g++ main.cpp -o my_program -lglfw -lGL
内容的提问来源于stack exchange,提问作者Commander Klag
相关产品推荐
相关产品推荐

