如何满足CMakeLists.txt中的find_package()?

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

我正在尝试使用 sdbus-cpp 库。要使用文档说,您必须使用

find_package()
。我知道此命令会在用户系统上搜索
sdbus-c++

但是,我希望这个库与我自己的源代码一起构建。因此问题是:我如何满足我自己的 CMakeLists.txt 中的

find_package()

库作者确实提供了关于如何构建和安装库的说明,但我不使用我自己的库来被迫在终端中输入额外的命令。我想我必须添加

Find*.txt
文件或添加
install()
命令,但我无法让它们工作...

c++ cmake build dependencies dependency-management
1个回答
0
投票

install()
命令由sdbus-cpp提供。

如果你想使用

find_package()
命令来定位sdbus-cpp,你必须在构建项目之前构建sdbus-cpp。

  1. 设置
    CMAKE_INSTALL_PREFIX
    ,也许:
    cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/sdbus-cpp
  2. 修改项目的 CMakeLists.txt,添加一行:
set(sdbus-cpp_DIR /path/to/sdbus-cpp)
find_package(sdbus-cpp REQUIRED)

find_package(sdbus-cpp REQUIRED
PATHS /path/to/sdbus-cpp
NO_DEFAULT_PATH
)
© www.soinside.com 2019 - 2024. All rights reserved.