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

GLFW头文件引入写法看似怪异但可运行的疑问

GLFW头文件引入写法看似怪异但可运行的疑问

嘿,能把GLFW代码跑通已经很棒啦!不过发现自己的写法和教程视频不一样,哪怕能正常运行也会忍不住好奇为啥对吧?我来给你捋捋~

你贴的代码片段是这样的:

#include <iostream>
#include <glfw3.h>

int main() {
    std::cout << "Hello World!\n";

    GLFWwindow* window;
    if (!glfwInit())
        exit(EXIT_FAILURE);

    window = glfwCrea

(看起来代码没写完哦,后面的glfwCreateWindow相关部分记得补全呀)

回到你关心的写法差异问题,核心原因是编译环境的头文件搜索路径配置在起作用:

  • 多数GLFW教程里会用#include <GLFW/glfw3.h>这种写法,这是因为GLFW默认安装后,头文件会被放在一个名为GLFW的子目录下,必须带上这个目录前缀,编译器才能顺着路径找到目标头文件。
  • 而你的代码直接写#include <glfw3.h>就能生效,说明你的项目或编译环境已经把GLFW头文件所在的上级目录直接添加到了头文件搜索路径里。比如用IDE的话,可能在项目设置的“包含目录”里直接加了GLFW的include目录;如果是CMake构建,可能通过target_include_directories配置了正确的路径,编译器不用找子目录就能定位到glfw3.h。

最后给你个实用小建议:
为了代码的可移植性,最好改成#include <GLFW/glfw3.h>的标准写法。毕竟换个环境(比如把代码发给朋友、换台电脑编译)时,别人的环境未必会像你的一样把GLFW的头文件目录直接设为搜索路径,带目录前缀的写法兼容性会强很多。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 12:54:30