CMake find_library nvEncodeAPI.dll

时间:2017-05-04 14:24:34

标签: c++ cmake nvenc

我有Windows 7 64bit,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吗?

0 个答案:

没有答案