У меня 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
?
Задача ещё не решена.
Других решений пока нет …