从github上clone出来后进行cmake的编译,参考上面的文档,须要注意的点:java
Q:奇怪的是grpc.lib居然没有安装到目录下,不知道为何?python
因此我只能手动将Release目录下的lib文件都拷贝到安装目录下了c++
须要使用grpc的include,在安装目录下有git
C:\Program Files %28x86%29\grpc\includegithub
须要使用protobuf的include,在安装目录下有ruby
依赖库的路径:C:\Program Files %28x86%29\grpc\lib编码
依赖的库有:libprotobuf.lib;grpc++_unsecure.lib;grpc_unsecure.lib;gpr.lib;zlibstatic.lib;ws2_32.lib加密
protoc --proto_path=IMPORT_PATH --cpp_out=DST_DIR --java_out=DST_DIR --python_out=DST_DIR --go_out=DST_DIR --ruby_out=DST_DIR --javanano_out=DST_DIR --objc_out=DST_DIR --csharp_out=DST_DIR path/to/file.proto
protoc -I ./ --cpp_out=./ helloworld.proto
protoc -I ./ --grpc_out=. --plugin=protoc-gen-grpc=C:\bin\grpc_cpp_plugin.exe helloworld.proto
"Please compile grpc with _WIN32_WINNT of at least 0x600 (aka Windows Vista)"插件
须要添加编译宏:-D_WIN32_WINNT=0x600code
error C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型
在【项目-属性-C/C++-高级】中修改【禁用特定警告】,添加 4146.
error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(helloworld.grpc.pb.obj 中)
只能使用在编译grpc时生成的protobuf库,不能使用不一样版本的。
error LNK2001: 没法解析的外部符号 __imp__WSAStartup
warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
这个错误会致使文件中的中文没法正常解析,从而致使中文后面的符号出现未定义符号之类的一大堆错误。
解决方法就是将文件的编码格式改成:【Unicode(UTF-8 带签名)-代码页65001】
无效字符类型传输:protobuf string只支持UTF-8和ASCII
若是中文编码是GBK编码的话,有两种方法: