使用 Cmake 将库包含到 C++ 项目中

问题描述 投票:0回答:1

我想在 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)

但这也行不通。那么我如何包含整个库?

c++ cmake include mingw gtkmm
1个回答
0
投票

不要自己去寻找依赖项,而是从提供的 pkg-config 文件中获取此信息:

find_package(PkgConfig REQUIRED)
pkg_check_modules(Gtkmm REQUIRED IMPORTED_TARGET gtkmm-4.0)
target_link_libraries(main PUBLIC PkgConfig::Gtkmm)
© www.soinside.com 2019 - 2024. All rights reserved.