修改报错的cmake文件,路径在caffe工程下cmake/ProtoBuf.cmake, 修改如下两处 # Finds Google Protocol Buffers library and compilers and extends# 修改点1:### 改用pkg-config查找包set(ENV{PKG_CONFIG_PATH} /home/timber/Library/lib/pkgconfig)#find_package( Protobuf REQUIRED )# 注释掉find_package(Pkg...
-- Found PROTOBUF: /usr/lib/x86_64-linux-gnu/libprotobuf.so protobuf found PROTO_SRCS = /home/matrim/workspace/cmake-examples/03-code-generation/protobuf/build/AddressBook.pb.cc PROTO_HDRS = /home/matrim/workspace/cmake-examples/03-code-generation/protobuf/build/AddressBook.pb.h -- Config...
protobuf是一种混合语言的数据标准:通过结构化数据进行序列化(串行化),用于通讯协议、数据存储等领域。 通常描述protobuf,有两个层面: 在表现形式上,定义了一种源文件,扩展名为.proto,可以在其中定义存储类的内容;同时,protobuf有自己的专门编译器protoc(后面会介绍如何安装),可以将.protoc编译成.cc和.h文件,使之...
我已经在本地编译了protobuf,并且希望将我的CMakeLists.txt指向已安装的二进制文件(my文件夹/protobuf install/bin/protoc),而不是系统二进制文件(/usr通常,为了增强,我只需将BOOST_ROOT设置为已安装的文件夹,它就会找到所有的include_directories、库等。应该如何为Protobuf做这件事。我在FindProtobuf.c...
我们可以通过多种前端(MNN、NCNN、TVM的前端)去读取这个.onnx这个模型,但是首先你要安装protobuf。
-- Found Threads: TRUE -- --- Protobuf_PROTOC_EXECUTABLE is: Protobuf_PROTOC_EXECUTABLE-NOTFOUND CMake Error at /home/zz/soft/cmake/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:164 (message): Could NOT find Protobuf (missing: Protobuf_PROTOC_EXECUTABLE) (found version...
首先我们知道cmake安装目录下提供了FindProtobuf.cmake,因此find_package(Protobuf)一定是在MODULE模式下而不是CONFIG模式下被搜索到的。(题外话:现代的cmake推荐用XXXConfig.cmake也就是CONFIG模式来找依赖包,这方面OpenCV可以作为典范写的确实越来越好)。
Protobuf是google开发的一个序列化和反序列化的协议库,我们可以自己设计传递数据的格式,通过.proto文件定义我们的要传递的数据格式。例如,在深度学习中常用的ONNX交换模型就是使用.proto编写的。我们可以通过多种前端(MNN、NCNN、TVM的前端)去读取这个.onnx这个模型,但
# if(PROTOBUF_FOUND) # message(STATUS "protobuf library found") # else() # message(FATAL_ERROR "protobuf library is needed but cant be found") # endif() #include_directories(${PROTOBUF_INCLUDE_DIRS}) # 指定头文件和库文件目录
先前分析过find_package()原理,包括MODULE和CONFIG两种模式,每种模式各自的查找顺序也具体进行了解释。本篇以Protobuf为例,一步步确定cmake的find_package(Protobuf)是如何做到的。 实验基于Ubuntu 16.04系统,使用apt安装的libprotobuf-dev,并且系统里不存在其他版本的protobuf。