linux x86_64-w 64-mingw 32-g++在Ubuntu 22.04上不链接GLFW

oknrviil  于 2023-10-16  发布在  Linux
关注(0)|答案(1)|浏览(195)

我正在用OpenGL做一些事情,我想用x86_64-w 64-mingw 32-g++为Windows编译一个exe,但它不链接GLFW。当试图编译它说:

main.cpp:4:10: fatal error: GLFW/glfw3.h: No such file or directory
    4 | #include <GLFW/glfw3.h>
      |          ^~~~~~~~~~~~~~
compilation terminated.

我在终端中使用了x86_64-w64-mingw32-g++ -m64 ~myproject/glad/*.c main.cpp -o test.exe -lglfw -lGL
使用g++ -m64 ~myproject/glad/*.c main.cpp -o test -lglfw -lGL编译没有问题。

sr4lhrrt

sr4lhrrt1#

你需要用MinGW编译GLFW,或者找到一个预编译的版本。MinGW无法重用您已经安装的Linux版本的GLFW。
我制作了一个名为quasi-msys2的工具,从MSYS2庞大的预构建库库中自动安装MinGW的库。
安装依赖项:(假设是Ubuntu 22.04,根据您的Linux发行版进行调整)

sudo apt install make wget tar zstd gpg wine # Wine is optional but recommended.
# Install Clang and LLD (recommended)
bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"

安装quasi-msys 2:

git clone https://github.com/holyblackcat/quasi-msys2
cd quasi-msys2
make install _gcc _gdb _glfw
# We install GCC only for the libraries it provides, we'll be compiling with Clang instead.

打开 shell :

env/shell.sh

编译:

win-clang++ 1.cpp -o program.exe `pkg-config --libs --cflags glfw3`

Quasi-msys 2不需要外部MinGW安装,只需要交叉编译Clang(一个常规的本地版本)。尽管可以使用外部MinGW GCC,并从其下载库。

相关问题