How to link google protobuf libraries via cmake on linux?
c++, cmake, protocol-buffers
Solution
You could try CMake's `FindProtobuf` module:
include(FindProtobuf)
find_package(Protobuf REQUIRED)
include_directories(${PROTOBUF_INCLUDE_DIR})
...
target_link_libraries(complex
${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${PROTOBUF_LIBRARY}
)
For further info, run
cmake --help-module FindProtobuf
Problem
I'm trying to make it same way I made it for boost : ``` find_package(Boost COMPONENTS system filesystem REQUIRED) find_package(ProtocolBuffers) ## Compiler flags if(CMAKE_COMPILER_IS_GNUCXX) set(CMAKE_CXX_FLAGS "-O2") set(CMAKE_EXE_LINKER_FLAGS "-lsqlite3 -lrt -lpthread") endif() target_link_libraries(complex ${Boost_FILESYSTEM_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${PROTOBUF_LIBRARY} ) ``` (googled it somewhere) but got bad output: ``` CMake Warning at complex/CMakeLists.txt:18 (find_package): Could not find module FindProtocolBuffers.cmake or a configuration file for package ProtocolBuffers. Adjust CMAKE_MODULE_PATH to find FindProtocolBuffers.cmake or set ProtocolBuffers_DIR to the directory containing a CMake configuration file for ProtocolBuffers. The file will have one of the following names: ProtocolBuffersConfig.cmake protocolbuffers-config.cmake ``` How can I link it with cmake? or maybe I even can compile .proto file using cmake?