1.9 在protobuf文件夹下运行make && make install 1.10 实际上在1.9中也会生成libprotobuf.a文件,但是我主要是用来提取头文件,因为make install会把生成的lib文件和需要使用的头文件分别安装到cygwin的/usr/local/lib和usr/local/include其中include文件夹下的文件是我们需要的,把include文件夹放到1.8的proto文件夹下 ...
1.9 在protobuf文件夹下运行make && make install 1.10 实际上在1.9中也会生成libprotobuf.a文件,但是我主要是用来提取头文件,因为make install会把生成的lib文件和需要使用的头文件分别安装到cygwin的/usr/local/lib和usr/local/include其中include文件夹下的文件是我们需要的,把include文件夹放到1.8的proto文件夹下 ...
google/protobuf/compiler/subprocess.cc \ google/protobuf/compiler/zip_writer.cc \ google/protobuf/compiler/cpp/cpp_enum.cc \ google/protobuf/compiler/cpp/cpp_enum_field.cc \ google/protobuf/compiler/cpp/cpp_extension.cc \ google/protobuf/compiler/cpp/cpp_field.cc \ google/protobuf/compiler/...
同其他静态库一样引用到工程即可。 安装protoc 如果需要安装到本地,切换到protobuf文件夹下顺序执行下面命令 ./autogen.sh// 生成下面的configure./configuremake// google/protobuf/message.cc:175:16: error: implicit instantiation of undefined template// 'std::__1::basic_istream<char, std::__1::char...
用的64位Ubuntu系统,开发一个共享库so使用到了protobuf,如果链接libprotobuf.so就需要一起打包带走,否则可能因protobuf版本较多出现版本不匹配的问题,所以需要它链接静态库libprotobuf.a,但是链接时候报错: relocation R_X86_64_32 against `a local symbol’ can not be used when making a shared object; reco...
我设法解决了这个问题。如果有人需要的话,这就是工作舱规范
1. 原因为protobuf使用了静态运行库,而应用工程是用premake生成的,默认使用动态运行库。 premake的runtime只能设置 Debug 或 Release: runtime "Release" 应该使用 flags { "StaticRuntime" } 来设置静态运行库。 参考:
如果链接libprotobuf.so就需要一起打包带走,否则可能因protobuf版本较多出现版本不匹配的问题,所以需要它链接静态库libprotobuf.a,但是链接时候报错: relocation R_X86_64_32 against `a local symbol’ can not be used when making a shared object; recompile with -fPIC。
项目中使用protobuf作为网络传输协议,最开始在项目中直接使用源代码编译,在真机上测试一直是正常的,直到某天开始在 CPU是64 bit的设备上发现protobuf导致crash了,于是就开始尝试使用.a静态库看看是否能解决问题(失败了)。bug解决方案直接看最后。 开发环境
1,此文件夹中的protobuf库文件与exe均是在windows10+minGW下编译生成的 2,protobuf版本是3.6.1(源码一并附上) 3,使用说明参考: 3.1,编者环境window10 +qtCreator5.11.1(安装时勾选上minGW); 3.2, 编写.proto文件 例: syntax = "proto3"; package MXSocket; message TestREQ { int32 data = 1; string...