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
相关产品推荐
相关产品推荐

