Я нашел способ использовать protobuf v2 с cmake в Windows и собрать его с настройками вашего проекта.Пожалуйста, попробуйте поискать в cmake-external-packages project и protobuf-v2 CMakeLists , которые выполняют эту работу.На самом деле, я написал это потому, что ExternalProject_Add
неверно (потому что делает вещи в фазе сборки, а не в фазе генерации).
Этот CMakeLists.txt будет загружать protobuf из Gitub-релизов protobuf , извлечьи отправьте цели cmake, ссылки на которые вы должны добавить с помощью target_link_libraries
.
Используйте git-subtree , git-submodule или просто скопируйте это содержимое репозитория в свойподпапка репозитория.
Затем добавьте пакеты, которые вы хотите использовать с add_subdiretory
.Для protobuf используйте:
add_subdirectory(path/to/cmake-external-packages/protobuf-v2)
Включения Protobuf будут скопированы в папку path/to/cmake-external-packages/include
.Вы можете настроить его местоположение в своих списках CMake верхнего уровня:
set (EXTERNAL_PACKAGES_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/third-party/include
CACHE STRING "Directory for third-party include files, where include folders will be copied")
include_directories(${EXTERNAL_PACKAGES_INCLUDE_DIR})
Просто укажите ссылку на protobuf для вашего исполняемого файла:
add_executable(your_exe ${your_exe_sources})
target_link_libraries(your_exe libprotobuf libprotobuf-lite libprotoc)
Надеюсь, это поможет.