gpt4 book ai didi

systemd 的 Cmake 变量为空

转载 作者:行者123 更新时间:2023-12-05 06:27:54 26 4
gpt4 key购买 nike

我想从我的 C++ 项目中启动/停止 systemd 服务。因此,我喜欢使用提供的 systemd 库和 header 。我正在使用 cmake 生成 makefile。我正在尝试通过 cmake 获取 systemd

pkg_check_modules(SDBUS REQUIRED systemd)

实际上是

message(STATUS "FOUND"${SDBUS_FOUND}) 返回 1。

但是,由 cmake 创建的所有其他必需的 vars 都是

message(STATUS "LIBS" ${SDBUS_LIBRARIES})
message(STATUS "LIB_DIRS" ${SDBUS_LIBRARY_DIRS})
message(STATUS "LDFLAGS" ${SDBUS_LDFLAGS})
message(STATUS "LDFLAGS_OTHER" ${SDBUS_LDFLAGS_OTHER})
message(STATUS "INCLUDE DIRS" ${SDBUS_INCLUDE_DIRS})
message(STATUS "CFLAGS" ${SDBUS_CFLAGS})
message(STATUS "CFLAGS_OTHER" ${SDBUS_CFLAGS_OTHER})

是空的。这会导致编译项目时出现链接器错误。调用时的确如此

pkg-config --libs systemd

它也是空的。任何人都知道如何解决这个问题以及为什么所有这些信息都不适用于 systemd?

最佳答案

你应该使用

pkg_check_modules(SDBUS REQUIRED libsystemd)

注意额外的“lib”前缀。

关于systemd 的 Cmake 变量为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54889295/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com