glibmm.h:找不到这样的目录或文件

Posted

技术标签:

【中文标题】glibmm.h:找不到这样的目录或文件【英文标题】:glibmm.h: could not find such directory or file 【发布时间】:2020-11-11 15:10:00 【问题描述】:

我想将 gtk 包含到我的新 cmake 项目中。但是当我编译时,我得到了这个错误:+

In file included from /home/chhu/CLionProjects/MasterMind/main.cpp:2:
/usr/include/gtkmm-3.0/gtkmm.h:87: fatal error: glibmm.h: could not find such directory or file

这是我的 cmake 文件:

cmake_minimum_required(VERSION 3.17)
project(MasterMind)
set(CMAKE_CXX_STANDARD 14)

# Use the package PkgConfig to detect GTK+ headers/library files
FIND_PACKAGE(PkgConfig REQUIRED)
PKG_CHECK_MODULES(GTK3 REQUIRED gtk+-3.0)

# Setup CMake to use GTK+, tell the compiler where to look for headers
# and to the linker where to look for libraries
INCLUDE_DIRECTORIES($GTK3_INCLUDE_DIRS)
LINK_DIRECTORIES($GTK3_LIBRARY_DIRS)

# Add other flags to the compiler
ADD_DEFINITIONS($GTK3_CFLAGS_OTHER)

add_executable(MasterMind main.cpp)

# Link the target to the GTK+ libraries
TARGET_LINK_LIBRARIES(MasterMind $GTK3_LIBRARIES)

这是我的课:

#include <gtkmm-3.0/gtkmm.h>

int main(int argc, char *argv[]) 
auto app =
        Gtk::Application::create(argc, argv,
                                 "org.gtkmm.examples.base");

Gtk::Window window;
window.set_default_size(200, 200);

return app->run(window);

我正在 ubuntu 20.4 下开发。我的 g++ 版本是 9.3.0。

【问题讨论】:

【参考方案1】:

Gtkmm 不是 Gtk 的一部分。你应该更新你的 CMakeLists

PKG_CHECK_MODULES(GTKMM3 REQUIRED gtkmm-3.0)
INCLUDE_DIRECTORIES($GTKMM3_INCLUDE_DIRS)
LINK_DIRECTORIES($GTKMM3_LIBRARY_DIRS)

ADD_DEFINITIONS($GTKMM3_CFLAGS_OTHER)

TARGET_LINK_LIBRARIES(MasterMind $GTKMM3_LIBRARIES)

【讨论】:

以上是关于glibmm.h:找不到这样的目录或文件的主要内容,如果未能解决你的问题,请参考以下文章

React-native - ios - Enoent - 找不到这样的文件或目录

gcc找不到-lgcc,g ++。exe:错误:CreateProcess:没有这样的文件或目录

在CMD下用java命令出现“找不到或无法加载主类”问题

怎么解决linux中找不到文件或目录的问题?

bat运行出错,提升找不到文件,或者F=文件,D=目录?

没有那个文件或目录