我有 Windows 7 64 位、CMake 3.8.1、NVidia Cuda 8.0、NVidia Video Codec SDK 7.1.9。
我有这个文件:C:\Windows\SysWOW64\nvEncodeAPI.dll
我有这个 CMake 模块:D:\projects\git\myProject\CMakeModules\FindNVenc.cmake
如下...
大纲(相关部分):
- 打印变量(有时是
ENV
单词后的环境变量) - 打印
find_library
命令 - 执行
find_library
命令 - 印刷
NVenc_LIBRARY
变量
内容原样(相关部分):
message(STATUS "NVenc_ROOT: ${NVenc_ROOT} ENV $ENV{NVenc_ROOT}")
message(STATUS "NVenc_INCLUDE_DIR: ${NVenc_INCLUDE_DIR} ENV $ENV{NVenc_INCLUDE_DIR}")
message(STATUS "NVenc_LIBRARY_DIR: ${NVenc_LIBRARY_DIR} ENV $ENV{NVenc_LIBRARY_DIR}")
message(STATUS "NVenc_LIBRARY_NAME: ${NVenc_LIBRARY_NAME}")
message(STATUS "find_library(NVenc_LIBRARY NAMES ${NVenc_LIBRARY_NAME} PATHS ${NVenc_LIBRARY_DIR} $ENV{NVenc_LIBRARY_DIR} ${NVenc_ROOT} $ENV{NVenc_ROOT} PATH_SUFFIXES lib NO_DEFAULT_PATH)")
find_library(NVenc_LIBRARY NAMES ${NVenc_LIBRARY_NAME}
PATHS ${NVenc_LIBRARY_DIR} $ENV{NVenc_LIBRARY_DIR} ${NVenc_ROOT} $ENV{NVenc_ROOT}
PATH_SUFFIXES lib
NO_DEFAULT_PATH)
message(STATUS "NVenc_LIBRARY: ${NVenc_LIBRARY}")
输出是
-- NVenc_ROOT: ENV D:\projects\git\libs
-- NVenc_INCLUDE_DIR: D:/projects/git/libs ENV
-- NVenc_LIBRARY_DIR: ENV C:\Windows\SysWOW64
-- NVenc_LIBRARY_NAME: nvEncodeAPI
-- find_library(NVenc_LIBRARY nvEncodeAPI PATHS C:\Windows\SysWOW64 D:\projects\git\libs PATH_SUFFIXES lib NO_DEFAULT_PATH)
-- NVenc_LIBRARY: NVenc_LIBRARY-NOTFOUND
这意味着该find_library
命令没有找到我拥有的文件。这个 CMake 模块在 Linux 上运行良好。(一直工作到我开始在 Windows 上修改它。现在我真的不知道,但我认为它仍然应该工作。如果我打破它会修复。)
我在某处有错字吗?有什么我不明白的find_library
吗?