如何在macOS 11(Apple Silicon M1)设备上创建并运行GTK+4应用
问题核心原因
报错的核心是编译器当前默认生成x86_64架构的二进制文件,但你通过ARM版Homebrew安装的GTK4及依赖库均为arm64架构,架构不匹配导致链接失败。
解决方案
- 第一步:确认终端运行在原生ARM架构下
打开终端执行uname -m,如果输出为x86_64,说明终端开启了Rosetta转译:右键访达中的「终端.app」,点击「显示简介」,取消勾选「使用Rosetta打开」,重启终端后重新执行命令,确认输出为arm64即可。 - 第二步:配置Homebrew的环境变量
M1芯片Mac的Homebrew默认安装路径为/opt/homebrew,需要将其二进制路径和pkgconfig路径加入环境变量。
如果你用zsh作为默认shell,执行以下命令:
如果你用bash作为默认shell,把上面的echo 'export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:$PATH"' >> ~/.zshrc echo 'export PKG_CONFIG_PATH="/opt/homebrew/lib/pkgconfig"' >> ~/.zshrc source ~/.zshrc~/.zshrc替换为~/.bash_profile即可。 - 第三步:编译时指定arm64架构
给编译命令加上-arch arm64参数指定目标架构,修改后的编译命令为:
如果你的源文件是cpp后缀,把gcc换成g++即可。gcc -arch arm64 main.c -o main `pkg-config --cflags --libs gtk4` && ./main
如果仍出现架构冲突,可以检查是否同时安装了x86版本的Homebrew(路径为/usr/local/Homebrew),临时移除PATH中/usr/local/bin相关的配置项,避免pkg-config调用到x86版本的库配置。
内容的提问来源于stack exchange,提问作者Anton
相关产品推荐
相关产品推荐

