У меня ошибка при попытке скомпилировать приложение Valhalla. Я пытался скомпилировать этот код, используя CMAKE:
find_package(Protobuf REQUIRED)
message(" --> PROTOBUF LIB: ${PROTOBUF_LIBRARIES}")
message(" --> PROTOBUF INCLUDE: ${PROTOBUF_INCLUDE_DIRS}")
message(" --> PROTOBUF VERSION: ${Protobuf_VERSION}")
message(" --> PROTOBUF Found: ${Protobuf_FOUND}")
if(EXISTS protobuf::libprotobuf-lite)
set(valhalla_protobuf_targets protobuf::libprotobuf-lite)
elseif(EXISTS protobuf::libprotobuf)
set(valhalla_protobuf_targets protobuf::libprotobuf)
else()
message(FATAL_ERROR "Required target protobuf::libprotobuf-lite or protobuf::libprotobuf is not defined")
endif()
Это код CMAKE, который выдает ошибку:
-- Found Protobuf: /usr/local/lib/libprotobuf.so;-pthread;-pthread (found version "3.6.1")
--> PROTOBUF LIB: /usr/local/lib/libprotobuf.so;-pthread;-pthread
--> PROTOBUF INCLUDE: /usr/local/include
--> PROTOBUF VERSION: 3.6.1
--> PROTOBUF Found: TRUE
CMake Error at CMakeLists.txt:143 (message):
Required target protobuf::libprotobuf-lite or protobuf::libprotobuf is not defined
Я не понимаю, почему этот код выдает ошибку «Требуется целевой protobuf :: libprotobuf-lite или protobuf :: libprotobuf не определен»
Я пытался изменить EXISTS на TARGET, но ничего не происходит, результатэто то же самое
if(TARGET protobuf::libprotobuf-lite)
set(valhalla_protobuf_targets protobuf::libprotobuf-lite)
elseif(TARGET protobuf::libprotobuf)
set(valhalla_protobuf_targets protobuf::libprotobuf)
else()
message(FATAL_ERROR "Required target protobuf::libprotobuf-lite or protobuf::libprotobuf is not defined")
endif()
Кто-нибудь может мне помочь?Я потратил около 2 дней, чтобы решить это