我想在 C++ 项目中使用 gtkmm-4.0。我是用msys安装的。现在 gtmm-4.0.h 文件保存在“C:\msys64\mingw64\include\gtkmm-4.0”。我有以下 CMakeLists.txt 文件。
cmake_minimum_required(VERSION 3.26)
project(Testing)
include_directories("C:/msys64/mingw64/include/gtkmm-4.0")
link_directories("C:/msys64/mingw64/lib/gtkmm-4.0")
add_executable(main main.cpp)
target_link_libraries(main gtkmm-4.0.lib)
但这不起作用,因为 gtkmm-4.0 库还依赖于 glibmm 和 giomm。这些也保存在 mingw64-文件夹中。但如果我将它们分别链接起来,总会有一些东西没有链接起来。这意味着我的做法是错误的。我基本上需要将所有内容都包含在 mingw64 中。但我不知道该怎么做。我尝试过
cmake_minimum_required(VERSION 3.26)
project(Testing)
include_directories("C:/msys64/mingw64/include")
link_directories("C:/msys64/mingw64/lib")
add_executable(main main.cpp)
target_link_libraries(main mingw64.lib)
但这也行不通。那么我如何包含整个库?
不要自己去寻找依赖项,而是从提供的 pkg-config 文件中获取此信息:
find_package(PkgConfig REQUIRED)
pkg_check_modules(Gtkmm REQUIRED IMPORTED_TARGET gtkmm-4.0)
target_link_libraries(main PUBLIC PkgConfig::Gtkmm)