我无法使用 CMake 在 Mac 上编译 gtkmm
I can't get gtkmm to compile on Mac using CMake
我正在尝试建立一个可以使用 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 以确保版本不是问题。我该怎么做才能让它发挥作用?
一定要安装 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})
我正在尝试建立一个可以使用 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 以确保版本不是问题。我该怎么做才能让它发挥作用?
一定要安装 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})