我无法使用 CMake 在 Mac 上编译 gtkmm
Posted
技术标签:
【中文标题】我无法使用 CMake 在 Mac 上编译 gtkmm【英文标题】:I can't get gtkmm to compile on Mac using CMake 【发布时间】:2020-03-31 01:53:34 【问题描述】:我正在尝试建立一个可以使用 gtkmm 进行 C++ 开发的环境。我的 CMakeLists.txt 文件如下所示:
cmake_minimum_required(VERSION 3.0.2)
project(program)
find_package(PkgConfig)
pkg_check_modules(GTKMM gtkmm-3.0)
link_directories($GTKMM_LIBRARY_DIRS)
include_directories(include $GTKMM_INCLUDE_DIRS)
file(GLOB SOURCES "*.cpp")
add_executable(program $SOURCES)
target_link_libraries(program $GTKMM_LIBRARIES)
然而,当我尝试在 main 中包含 include <gtkmm.h>
行时,我遇到了来自 CMake 的此错误:
fatal error: 'gtkmm.h' file not found
#include <gtkmm.h>
我使用命令brew install gtkmm
和brew install gtkmm3
安装了带有brew 的gtkmm,以确保版本不是问题。我该怎么做才能让它发挥作用?
【问题讨论】:
$GTKMM_INCLUDE_DIRS
的值是多少?你可以做message($GTKMM_INCLUDE_DIRS)
。
@squareskittles 找不到 PkgConfig(缺少:PKG_CONFIG_EXECUTABLE)
您应该首先解决在尝试编译之前 运行CMake 时遇到的任何错误。 pkg-config
甚至安装在您的系统上吗?当你输入 which pkg-config
时会发生什么?
@Laif:请在您的问题帖子中添加配置消息(如Could NOT find PkgConfig
)。奇怪的是问题帖子不包含影响解决问题的关键信息。
【参考方案1】:
请务必安装 pkg-config(使用 brew)。
这是一个可以使用的 CMakeLists.txt 文件:
cmake_minimum_required(VERSION 3.16)
project(program LANGUAGES CXX)
find_package(PkgConfig)
pkg_check_modules(GTKMM gtkmm-3.0)
add_executable(program)
target_compile_features(program PRIVATE cxx_std_17)
target_sources(program PRIVATE main.cpp)
target_include_directories(program PRIVATE $GTKMM_INCLUDE_DIRS)
target_link_directories(program PRIVATE $GTKMM_LIBRARY_DIRS)
target_link_libraries(program PRIVATE $GTKMM_LIBRARIES)
【讨论】:
以上是关于我无法使用 CMake 在 Mac 上编译 gtkmm的主要内容,如果未能解决你的问题,请参考以下文章
Cmake 无法在 qt creator/collect2 上编译简单的测试程序:错误:ld
使用 cmake 在 windows 上编译 c++ 数据库时出错