编码:
foreach (item avformat avcodec avfilter)
message("${item}")
find_library(ff_lib
NAMES
${item}
PATH_SUFFIXES
ffmpeg-4.3-win64-dev/lib/
REQUIRED
)
message("${ff_lib}")
set(FFmpeg ${FFmpeg} ${ff_lib})
unset(ff_lib)
endforeach ()
message("${FFmpeg}")
结论:
avformat
C:/Users/me/Desktop/ffmpeg-4.3-win64-dev/lib/avformat.lib
avcodec
C:/Users/me/Desktop/ffmpeg-4.3-win64-dev/lib/avformat.lib
avfilter
C:/Users/me/Desktop/ffmpeg-4.3-win64-dev/lib/avformat.lib
C:/Users/me/Desktop/ffmpeg-4.3-win64-dev/lib/avformat.lib;C:/Users/me/Desktop/ffmpeg-4.3-win64-dev/lib/avformat.lib;C:/Users/me/Desktop/ffmpeg-4.3-win64-dev/lib/avformat.lib
-- Configuring done
-- Generating done
PS:即 即使在 之后,该变量ff_lib
也不会被覆盖unset(ff_lib)
。
我在英文 StackOverflow 中找到了一个拐杖。原来
find_library()
它设置了一个无法删除的缓存变量。这是它的工作原理: