如何在macOS编译GTK4应用,启动时不打开终端窗口?
在macOS编译GTK4应用避免启动时打开终端窗口的方法
方法一:编译时添加GUI应用标记
macOS下,默认编译出的是命令行可执行文件,双击会自动打开终端运行。通过添加链接选项-Wl,-application,可以将编译产物标记为GUI应用类型,运行时就不会弹出终端窗口。修改后的编译命令如下:对于clang:
clang `pkg-config --cflags gtk4` ./src/main.c `pkg-config --libs gtk4` -Wl,-application -o ./bin/iViewGtk对于gcc-12:
gcc-12 `pkg-config --cflags gtk4` ./src/main.c `pkg-config --libs gtk4` -Wl,-application -o ./bin/iViewGtk方法二:打包为macOS标准.app应用包
如果需要更贴合macOS生态的分发形式,可以将编译后的可执行文件打包成.app应用包,步骤如下:
- 创建指定目录结构:
mkdir -p iViewGtk.app/Contents/MacOS mkdir -p iViewGtk.app/Contents/Resources - 编写
Info.plist配置文件(放置在iViewGtk.app/Contents/目录下),示例内容:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleExecutable</key> <string>iViewGtk</string> <key>CFBundleName</key> <string>iViewGtk</string> <key>CFBundleIdentifier</key> <string>com.yourdomain.iViewGtk</string> <key>CFBundleVersion</key> <string>1.0</string> <key>CFBundleShortVersionString</key> <string>1.0</string> <key>LSMinimumSystemVersion</key> <string>10.15</string> </dict> </plist> - 将编译好的可执行文件复制到对应目录:
cp ./bin/iViewGtk iViewGtk.app/Contents/MacOS/
完成后,双击iViewGtk.app即可直接运行应用,不会弹出终端窗口。
内容的提问来源于stack exchange,提问作者CodeGrinder
相关产品推荐
相关产品推荐

