gpt4 book ai didi

c++ - 找不到时如何消除cmake的find_package警告?

转载 作者:行者123 更新时间:2023-11-30 03:18:54 38 4
gpt4 key购买 nike

这是我的 CMakeLists.txt 的一部分

  find_package(Catch2)
if(TARGET Catch2::Catch2)
message("catch2 has been installed previously")
include(Catch)
else()
message("no target catch2")

include(FetchContent)
# Download and configure Catch2 for the tests
FetchContent_Declare(
catch2
GIT_REPOSITORY https://github.com/catchorg/Catch2
GIT_TAG master
)

FetchContent_GetProperties(catch2)
if (NOT catch2_POPULATED)
FetchContent_Populate(catch2)
add_subdirectory(${catch2_SOURCE_DIR} ${catch2_BINARY_DIR})
list(APPEND CMAKE_MODULE_PATH ${catch2_SOURCE_DIR}/contrib)
include(Catch)
endif()

endif()

我想做的是,如果catch2可用,那么直接使用,否则,自动从github下载。它现在工作正常,除了这个烦人的警告:

CMake Warning at test/CMakeLists.txt:9 (find_package):
By not providing "FindCatch2.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Catch2", but
CMake did not find one.

Could not find a package configuration file provided by "Catch2" with any
of the following names:

Catch2Config.cmake
catch2-config.cmake

Add the installation prefix of "Catch2" to CMAKE_PREFIX_PATH or set
"Catch2_DIR" to a directory containing one of the above files. If "Catch2"
provides a separate development package or SDK, be sure it has been
installed.

那么,如何消除这个警告呢?

最佳答案

就用QUIET,如下:

find_package(PackageName QUIET)

If the package configuration file cannot be found CMake will generate an error describing the problem unless the QUIET argument is specified.

https://cmake.org/cmake/help/v3.8/command/find_package.html?highlight=i

关于c++ - 找不到时如何消除cmake的find_package警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54253132/

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