You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 21.04下CMake编译GTK4程序make报错如何生成可执行文件?

编译GTK4程序报错解决方案

核心问题为CMake配置错误导致链接阶段未关联GTK4依赖库,按以下步骤调整即可正常编译:

1. 修正CMakeLists.txt配置

你当前的配置存在两个核心错误:

  • 仅配置了GTK4的头文件路径,未将GTK4的依赖库链接到最终的可执行文件目标
  • 引入了冗余的gtkmm-3.0依赖(gtkmm是GTK的C++绑定,你编译的是C语言程序,完全不需要该依赖,还可能引发版本冲突)

替换为以下配置即可:

cmake_minimum_required(VERSION 3.10)
project(gtk4-my)

# 定义可执行文件目标
add_executable(gtk4-my gtk4-my.c)

# 查找GTK4依赖
find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK4 REQUIRED gtk4)

# 为目标配置GTK4相关编译、链接参数
target_include_directories(gtk4-my PRIVATE ${GTK4_INCLUDE_DIRS})
target_compile_options(gtk4-my PRIVATE ${GTK4_CFLAGS_OTHER})
target_link_directories(gtk4-my PRIVATE ${GTK4_LIBRARY_DIRS})
target_link_libraries(gtk4-my PRIVATE ${GTK4_LIBRARIES})

2. 清理旧编译缓存重新构建

之前执行cmake生成了错误的构建文件,需要先清理缓存再重新编译:

# 进入你执行cmake命令的构建目录
cd /home/user/test123
# 删除旧的构建缓存文件
rm -rf CMakeCache.txt CMakeFiles cmake_install.cmake Makefile
# 重新生成构建文件
cmake my123
# 执行编译
make

可选:提前安装GTK4开发依赖

如果执行cmake时提示找不到GTK4包,先执行以下命令安装依赖:

sudo apt install libgtk-4-dev pkg-config

内容的提问来源于stack exchange,提问作者aleks_yolp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 17:15:02