Как создать правильный файл Find ***. Cmake - PullRequest
0 голосов
/ 17 февраля 2020

Я написал простой файл Find ***. Cmake для моего проекта, который отлично работает на Windows,

if(WIN32)
    find_path(Shaderc_INCLUDE_DIR
            NAMES shaderc/shaderc.hpp
            PATH "$ENV{VULKAN_SDK}/Include")
    find_library(Shaderc_LIBRARY
            NAMES shaderc_combined
            PATH "$ENV{VULKAN_SDK}/Lib")
elseif(UNIX)
    find_path(Shaderc_INCLUDE_DIR
            NAMES shaderc/shaderc.hpp
            PATH "$ENV{SHADERC_DIR}/include")
    find_library(Shaderc_LIBRARY
            NAMES libshaderc_combined
            PATH "$ENV{SHADERC_DIR}/lib")
endif()
set(Shaderc_INCLUDE_DIRS ${Shaderc_INCLUDE_DIR})
set(Shaderc_LIBRARIES ${Shaderc_LIBRARY})

, но выдает ошибку на Linux. Сообщение об ошибке:

CMake Error: в этом проекте используются следующие переменные, но для них установлено значение NOTFOUND. Пожалуйста, установите их или убедитесь, что они установлены и проверены правильно в файлах CMake: Shaderc_LIBRARY

Если я скопирую этот код в мой основной файл CMakeLists, он также прекрасно скомпилируется на Linux. Что я делаю не так? Это плохая практика - использовать переменные окружения на Linux для этой цели?

Спасибо за вашу помощь!

1 Ответ

1 голос
/ 17 февраля 2020

Что ж, судя по коду, ваш модуль просматривает каталоги, заданные переменными среды.

Вместо этого вы должны выполнить поиск в известных местах, таких как /usr/lib или /usr/local/lib. * 1005. *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...