Windows 10环境下用Clang C++构建64位GLFW库的方法咨询
我来帮你梳理下在Windows 10上用Clang构建64位GLFW库的完整步骤——其实思路和你之前用MinGW+CMake的流程差不多,只是需要明确指定Clang作为编译器,细节上有些小调整,我分两种方式给你讲:
准备工作
- 确保你已经安装了Clang for Windows(选64位版本,安装时一定要勾选“Add LLVM to PATH”,这样终端才能直接调用clang命令)
- CMake要保持安装状态且已加入系统PATH(你之前用过应该没问题)
- 下载GLFW的最新稳定版源代码包,解压到本地任意目录,比如
D:\glfw-source
方式一:终端命令行构建(推荐)
- 打开x64 Native Tools Command Prompt for VS——这一步很关键!Clang在Windows上需要依赖VS的工具链来处理Windows相关的链接工作,用这个命令行可以确保是纯64位的编译环境
- 进入GLFW源码目录,创建并进入build文件夹:
cd D:\glfw-source mkdir build cd build - 运行CMake配置命令,指定Clang作为编译器,同时明确64位目标:
给你解释下几个关键参数:cmake -G "MinGW Makefiles" -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON ..-G "MinGW Makefiles":因为Clang可以配合MinGW的make工具编译;如果你没装MinGW的make,也可以用Ninja(先装Ninja并加入PATH,把-G改成"Ninja"即可)-DCMAKE_C_COMPILER=clang和-DCMAKE_CXX_COMPILER=clang++:强制指定用Clang而非默认的GCC-DCMAKE_BUILD_TYPE=Release:构建发布版库,想要Debug版本就改成Debug-DBUILD_SHARED_LIBS=ON:生成动态库(.dll),如果需要静态库就改成OFF
- 启动编译:
编译完成后,去mingw32-make -j8 # -j8是用8线程编译,根据你的CPU核心数调整,比如4核就写-j4 # 要是用Ninja的话,直接输入:ninjabuild/src目录就能找到生成的64位GLFW库文件了(比如glfw3.dll和对应的导入库glfw3.lib)
方式二:CMake GUI可视化构建
如果你更喜欢图形界面操作:
- 打开CMake GUI,在「Where is the source code」选GLFW源码目录,「Where to build the binaries」选刚才创建的build文件夹
- 点击Configure,弹出的窗口里选「MinGW Makefiles」(或Ninja),勾选「Specify native compilers」,点Next
- 在C编译器路径里选LLVM安装目录下的
clang.exe(比如C:\Program Files\LLVM\bin\clang.exe),C++编译器选clang++.exe,点Finish - 配置完成后,在CMake GUI的选项列表里可以按需调整:
- 勾选
BUILD_SHARED_LIBS切换动态/静态库 - 设置
CMAKE_BUILD_TYPE为Release或Debug - 可以取消
GLFW_BUILD_EXAMPLES、GLFW_BUILD_TESTS这些不需要的选项,加快编译速度
- 勾选
- 点击Generate生成构建文件,之后要么点Open Project,要么直接去build文件夹里运行
mingw32-make或ninja编译 - 编译完成后同样在
build/src目录取生成的库文件
几个要注意的点
- 绝对不要用普通的CMD或PowerShell直接操作,一定要用x64的VS工具命令行,否则可能会生成32位库
- 如果编译时遇到链接错误,大概率是环境变量没加载全,重新打开x64工具命令行再试一次
- 要是你不需要GLFW的文档、示例这些,CMake配置时直接取消对应选项,能省不少编译时间
内容的提问来源于stack exchange,提问作者Dre4msNoEvil




