您的位置:首页 > 其它

对protobuf进行ndk编译 config.h文件修改部分

2016-04-21 15:25 357 查看
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下去是不会通过的)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: