如何修复此错误?
None-of-your-business@penguin:~/None-of-your-business$ x86_64-w64-mingw32-gcc -o bin/EreecliseWin64.exe src/main.c
src/main.c:4:10: fatal error: GLFW/glfw3.h: No such file or directory
4 | #include <GLFW/glfw3.h>
| ^~~~~~~~~~~~~~
我试过这个。
None-of-your-business@penguin:~/None-of-your-business$ x86_64-w64-mingw32-gcc -o bin/EreecliseWin64.exe src/main.c -lglfw3 -lGL -lX11 -lpthread -lXrandr -lXi -ldl -lm
src/main.c:4:10: fatal error: GLFW/glfw3.h: No such file or directory
4 | #include <GLFW/glfw3.h>
| ^~~~~~~~~~~~~~
我安装了GLFW
您的命令是结合了编译器和链接器步骤的简短形式:
x86_64-w64-mingw32-gcc -o bin/EreecliseWin64.exe src/main.c
为了在构建过程中进行故障排除和整体清晰度,我建议您将其分为两个单独的步骤,如下所示:
x86_64-w64-mingw32-gcc -c -o bin/main.o src/main.c
x86_64-w64-mingw32-gcc -o bin/EreecliseWin64.exe src/main.o
上面的第一行是编译器步骤,您应该向其中添加 glfw3 所需的编译器标志。 如果一切都正确安装,您应该能够通过运行
pkg-config --cflags glfw3
来获取这些标志。
上面的第二行是链接器步骤,您应该向其中添加 glfw3 所需的链接器标志。 如果一切都正确安装,您应该能够通过运行
pkg-config --lib glfw3
来获取这些标志。
x86_64-w64-mingw32-gcc -c -o bin/main.o src/main.c $(pkg-config -cflags glfw3)
x86_64-w64-mingw32-gcc -o bin/EreecliseWin64.exe src/main.o $(pkg-config --libs glfw3)
如果
pkg-config
不起作用,请尝试将 PKG_CONFIG_PATH
指向包含 glfw3.pc
的路径(例如 PKG_CONFIG_PATH=/usr/lib/pkgconfig/glfw3.pc
),或者像这样手动指定标志:
x86_64-w64-mingw32-gcc -c -o bin/main.o src/main.c -I/usr/include
x86_64-w64-mingw32-gcc -o bin/EreecliseWin64.exe src/main.o -L/usr/lib -lglfw3
将上面示例中的
/usr
替换为 x86_64-w64-mingw32 平台的 glfw3 安装的正确位置。
如果您要进行交叉编译(在 Linux 上构建时针对 Windows),那么拥有并使用 Windows 版本的 glfw3 非常重要。