对protobuf进行ndk编译 config.h文件修改部分
发布日期:2021-06-30 16:01:29 浏览次数:2 分类:技术文章

本文共 832 字,大约阅读时间需要 2 分钟。

ok,废话不多说了,正文开始

首先,android.mk文件与其它文件的区别之处

LOCAL_CPP_EXTENSION := .cc  .cpp 

因为protobuf的源文件是*.cc的,利用proto生成的文件也是*.cc的格式,所以需要把*.cc,*.cpp添加到LOCAL_CPP_EXTENSION 里面

接着利用上面博客里面说道的protobuf需要的文件添加到mk文件的LOCAL_SRC_FILES里面,注意路径就行,这点不在叙述

由于源文件里面用到了config.h,而这个文件是在VS工程目录下的,不在src/google/目录里面,所以需要把此文件copy到google目录里面(或者其子目录里面)

接着修改config.h文件,详细情况如下:

最上面的红色区域为,非WIN32环境下需要的头文件和namespace

中间的红色区域注释掉,如果不注释掉的话,ndk编译的时候会报ndk里面的一个D:\android-ndk-r8\sources\cxx-stl\gnu-libstdc++\include\backward\backward_warning.h文件找不到,其实这个文件是有的,具体为啥找不到,我不得而知,而且baidu和google也都没办法找到答案,好几个国外的网站上有这个问题,不过天朝和谐了,没办法查看。

第三个红色区域,为自己添加的宏,非win32环境需要用到pthread,源文件里面就是用这个宏来区别的

 

最后一点,设置LOCAL_C_INCLUDES的时候,一定要把之前config.h文件所在目录的路径包含进去,否则编译会找不到config.h文件

 

当所以上面的这些都搞定之后,那就用cgywin去ndk-build吧

我用真机测试过,收发协议正常。童鞋们有任何疑问欢迎留言(网上好难找到关于protobuf的ndk编译过程,上面的博客没有对config.h文件要修改进行说明,所以直接copy下去是不会通过的)。

转载地址:https://kaitiren.blog.csdn.net/article/details/9058549 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Protocol Buffers Encoding
下一篇:ndk编译protobuf精简版(lite版)

发表评论

最新留言

很好
[***.229.124.182]2024年04月19日 01时35分10秒