как напечатать значение внутри переменной в cmakelist.txt - PullRequest
0 голосов
/ 21 февраля 2019

Я использую CMake для своего недавнего проекта и хочу подтвердить, что задан правильный путь

set(_protobuf_include_path -I . -I ${_gRPC_PROTOBUF_WELLKNOWN_INCLUDE_DIR})

Я использовал message, чтобы проверить значение _gRPC_PROTOBUF_WELLKNOWN_INCLUDE_DIR, но ничего не печатал втерминал

message( STATUS ${_gRPC_PROTOBUF_WELLKNOWN_INCLUDE_DIR} ) # no output for this

Я собираюсь собрать Grpc1.14.1, но он зависит от protobuf, поэтому я скачал protobuf 3.6.01, и grpc и protobuf хранятся в одном каталоге (home/user/src).

При сборке я получил эту ошибку

google/protobuf/stubs/common.h: No such file or directory
 #include <google/protobuf/stubs/common.h>

Итак, я открыл protobuff.cmake в каталоге gRPC/cmake и изменил корневой путь protobuf

if(NOT PROTOBUF_ROOT_DIR)
  #set(PROTOBUF_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/protobuf)
  set(PROTOBUF_ROOT_DIR ../../ThirdParty/protobuf)
[...]

После этого,У меня все та же проблема.

1 Ответ

0 голосов
/ 21 февраля 2019

Во-первых, что-то немного не относящееся к вопросу, но связанное с современными методами и использованием CMake .

Чтобы задать путь включения, предпочтительно использовать target_include_directories команда, например,

target_include_directories(mytarget 
  PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
  PUBLIC ${_gRPC_PROTOBUF_WELLKNOWN_INCLUDE_DIR}
  )

Теперь, для фактического вопроса, было бы полезно, если бы вы могли показать фактическую настройку ${_gRPC_PROTOBUF_WELLKNOWN_INCLUDE_DIR} (это через командную строку через `-D) опций?) Но вы могли бы напечатать это так:

message(STATUS "include dir: ${_gRPC_PROTOBUF_WELLKNOWN_INCLUDE_DIR}")

Я подозреваю, что в ложных пробелах или что-то в этом роде в фактическом содержимом переменной.

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