gpt4 book ai didi

c++ - 如何处理在源代码中找不到 OpenCV

转载 作者:行者123 更新时间:2023-11-28 04:03:47 25 4
gpt4 key购买 nike

我已经构建了一个依赖于 OpenCV 的 C++ 库。但是,有时我不需要使用 OpenCV,并且在没有它的情况下编译代码。

想法是,当 CMake 中的 OpenCV_Found 变量为真时,会有一个类似于 OpenCV_Found 变量的预处理器变量,但在 C++ 代码中。换句话说,我想做这样的事情:

#ifdef OpenCV_Found
#include <opencv2/core/core.hpp>
#endif

我的问题是:

OpenCV 是否提供类似的变量?或者我是否必须手动定义它,并将其发送到目标编译标志?

最佳答案

您可以使用 CMake 将 OpenCV_Found CMake 定义转发到您的 C++ 源代码。您可以使用 generator expressiontarget_compile_definitions()像这样:

add_executable(MyExe ${MY_SOURCES})
target_compile_definitions(MyExe PUBLIC $<$<BOOL:${OpenCV_Found}>:OpenCV_Found>)

${OpenCV_Found} CMake 变量的计算结果为 True 时,这会将 OpenCV_Found 作为预处理器定义添加到 MyExe 目标。当 CMake 变量 ${OpenCV_Found} 评估为 False(不区分大小写等于 0FALSEOFF , N, NO, IGNORE, or NOTFOUND), OpenCV_Found pre-省略了处理器定义。

关于c++ - 如何处理在源代码中找不到 OpenCV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59078631/

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