gpt4 book ai didi

c++ - 关于empty cmake FIND宏的问题

转载 作者:行者123 更新时间:2023-11-28 06:52:56 26 4
gpt4 key购买 nike

我有一个看起来像这样的宏

MACRO(FFMPEG_FIND varname shortname headername)
MESSAGE(STATUS "FFMPEG_${varname}_LIBRARIES: ${FFMPEG_${varname}_LIBRARIES}")
MESSAGE(STATUS "FFMPEG_${varname}_INCLUDE_DIRS: ${FFMPEG_${varname}_INCLUDE_DIRS}")
ENDMACRO(FFMPEG_FIND)

这样调用:

FFMPEG_FIND(LIBAVFORMAT avformat avformat.h)
FFMPEG_FIND(LIBAVDEVICE avdevice avdevice.h)
FFMPEG_FIND(LIBAVCODEC avcodec avcodec.h)
FFMPEG_FIND(LIBAVUTIL avutil avutil.h)
FFMPEG_FIND(LIBSWSCALE swscale swscale.h) # not sure about the header to look for here.

这会给我们输出

-- FFMPEG_LIBAVFORMAT_LIBRARIES: F:/Dev/Lib/ffmpeg-20140507-git-4cdea92-win32-de
v/lib/avformat.lib
-- FFMPEG_LIBAVFORMAT_INCLUDE_DIRS: F:/Dev/Lib/ffmpeg-2.2.1
-- FFMPEG_LIBAVDEVICE_LIBRARIES: F:/Dev/Lib/ffmpeg-20140507-git-4cdea92-win32-de
v/lib/avdevice.lib
-- FFMPEG_LIBAVDEVICE_INCLUDE_DIRS: F:/Dev/Lib/ffmpeg-2.2.1
-- FFMPEG_LIBAVCODEC_LIBRARIES: F:/Dev/Lib/ffmpeg-20140507-git-4cdea92-win32-dev
/lib/avcodec.lib
-- FFMPEG_LIBAVCODEC_INCLUDE_DIRS: F:/Dev/Lib/ffmpeg-2.2.1
-- FFMPEG_LIBAVUTIL_LIBRARIES: F:/Dev/Lib/ffmpeg-20140507-git-4cdea92-win32-dev/
lib/avutil.lib
-- FFMPEG_LIBAVUTIL_INCLUDE_DIRS: F:/Dev/Lib/ffmpeg-2.2.1
-- FFMPEG_LIBSWSCALE_LIBRARIES: F:/Dev/Lib/ffmpeg-20140507-git-4cdea92-win32-dev
/lib/swscale.lib
-- FFMPEG_LIBSWSCALE_INCLUDE_DIRS: F:/Dev/Lib/ffmpeg-2.2.1
-- Configuring done
-- Generating done

我的第一个问题是 cmake 如何在 FIND 宏基本为空时在我的硬盘驱动器上找到库。更重要的问题是,为什么 INCLUDE_DIRS 设置为 F:/Dev/Lib/ffmpeg-2.2.1 这是一条根本不存在的路径(有F:/Dev/Lib 中没有 ffmpeg-2.2.1 文件夹),因为它应该指向 F:/Dev/Lib/ffmpeg-20140507-git-4cdea92-win32-dev/include

最佳答案

你的宏没有找到任何东西,它只是打印来自 CMakeCache.txt 的值,它是 cmake 调用(或 configure GUI 中的步骤)。您的 FFMPEG 相关值由之前的 cmake 调用设置,现在 cmake 打印它们。

可以通过在构建目录中运行 cmake -DVAR=VALUE . 来更改缓存值。

关于c++ - 关于empty cmake FIND宏的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23576624/

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