我正在使用 MingW32 并尝试安装软件包mingw-w64-x86_64-gtk3
,但是无法通过 获得apt install
,而且似乎只能通过 进行安装pacman
。有人可以告诉我如何让它工作吗(可能不使用 MSYS2,因为我几乎让所有东西都正常工作,只是缺少 GTK3 部分)。
也就是说,我需要这个包,但看起来你只能使用以下命令从 MSYS2 中获取它pacman
:https://packages.msys2.org/package/mingw-w64-x86_64-gtk3
环境/设置:
- Windows 11
- Ubuntu 22.04(WSL2)
apt install mingw-w64
我能够使用 MingW32 在 Ubuntu 22.04 中编译所有 CLI 可执行文件,并在 Windows 中正常运行。我还有 2 个小型 GUI 应用程序,我想让它们也能工作,它们使用 GTK3。我也能编译它们,但只能在 Windows 中使用 MSYS2,但我真的只想在 Ubuntu 环境之外编译/构建所有内容,以使一切保持简单。
答案1
我做了准MSYS2,它有助于在 Linux 上下载 MSYS2 包。
sudo apt install make wget tar zstd gpg
git clone https://github.com/HolyBlackCat/quasi-msys2
cd quasi-msys2/
make install _gtk4 # equivalent to `make install mingw-w64-x86_64-gtk4`
这会将 GTK4 下载到当前目录(./root/mingw64/
)供您使用。
但有一个问题:MinGW 有不同的版本,MSYS2 提供的版本可能与 Ubuntu 提供的版本兼容,也可能不兼容。
推荐的构建方法不依赖于外部 MinGW。相反,我建议使用 Clang,如果提供了正确的库(我们从 MSYS2 下载),它可以与任何 MinGW 版本兼容。
sudo apt install wine # Optional.
# Install latest Clang
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh
rm llvm.sh
# Install more packages
make install _gcc _gdb # We won't be using GCC, but we need libraries that come with it.
# Opens a new shell with the right environment variables configured.
env/shell.sh
然后,在 Hello World 上进行测试这里:
# Notice `pkg-config` picking up the correct libraries.
win-clang++ hello_world.cpp `pkg-config --cflags --libs gtk4`
# This opens the app in Wine:
./a.exe