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

n9vozmp4  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(167)

我想在一个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。这些也保存在mingw 64-文件夹中。但是如果我单独链接它们,总是有一些东西没有链接。这意味着我这样做是错误的。我基本上需要包括mingw 64中的所有内容。但是我不知道如何做到这一点。我尝试使用

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)


但这也不起作用。那么我如何包括整个图书馆?

iugsix8n

iugsix8n1#

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

find_package(PkgConfig REQUIRED)
pkg_check_modules(Gtkmm REQUIRED IMPORTED_TARGET gtkmm-4.0)
target_link_libraries(main PUBLIC PkgConfig::Gtkmm)

字符串

相关问题