Не удается найти «gflags/gflags.h» при сборке библиотеки OSX

Я пытаюсь собрать библиотеку, включающую 'gflags/gflags.h', и у меня возникают проблемы с ее поиском.

Я установил gflags и glog с помощью homebrew.

Вывод CMake говорит:

-- Found installed version of gflags: /usr/local/lib/cmake/gflags
-- Detected gflags version: 2.2.2
-- Found Gflags: /usr/local/include
-- Found Glog: /usr/local/include

При запуске "cmake" все в порядке ошибок нет. Но когда я запускаю "make install", он не может построить и пишет "fatal error: 'gflags/gflags.h' file not found"

Как я могу создать библиотеку, которая требует gflags в OSX?


person xfarxod    schedule 22.04.2020    source источник
comment
попытаться увидеть внутри файла Cmake, если путь Gflags установлен вручную?   -  person mudin    schedule 23.04.2020
comment
В файле Cmake есть только find_package(Gflags REQUIRED) find_package(Glog REQUIRED)   -  person xfarxod    schedule 23.04.2020
comment
Не могли бы вы как-то предоставить CmakeList? Я предполагаю, что вы не связываете каталог gflags со своим исполняемым файлом.   -  person Thomas Caissard    schedule 23.04.2020
comment
Предоставьте свой код CMake, включая код, показывающий, как вы используете переменные Gflags после вызовов find_package(). Не видя используемого вами кода, мы можем только догадываться, в чем может быть проблема...   -  person squareskittles    schedule 23.04.2020
comment
@ThomasCaissard @squareskittles Спасибо, ребята. Это была проблема в include_directories   -  person xfarxod    schedule 23.04.2020


Ответы (1)


Сначала найдите свой пакет

find_package(Gflags REQUIRED)
find_package(Glog REQUIRED)

А затем назначьте заголовочные файлы этих библиотек вашему исполняемому пути включения

include_directories(${GLOG_INCLUDE_DIRS} ${GFLAGS_INCLUDE_DIRS})

Убедитесь, что эти переменные установлены правильно

message(STATUS "GFLAGS include path: ${GFLAGS_INCLUDE_DIRS}")
person Kevin    schedule 23.04.2020
comment
gflag и glog предоставляют современные цели CMake gflags::gflags и glog::glog -> прекратить использование устаревшего *_INCLUDE_DIRS. Спасибо - person Mizux; 23.04.2020