protobuffer 编译配置

mkdir -p ./cmake/build
cd ./cmake/build
cmake \
-Dprotobuf_BUILD_SHARED_LIBS=OFF \
-Dprotobuf_BUILD_STATIC_LIBS=ON \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-Dprotobuf_BUILD_TEST=OFF \
-Dprotobuf_BUILD_EXAMPLES=OFF \
-DCMAKE_TOOLCHAIN_FILE=../toolchain.cmake \
-DCMAKE_BUILD_TYPE=Release \
-DANDROID_NDK=/home/floyd/ndk \
-DANDROID_TOOLCHAIN=clang \
-DANDROID_ABI=armeabi-v7a \
-DANDROID_NATIVE_API_LEVEL= \
-DANDROID_STL=c++_shared \
-DANDROID_LINKER_FLAGS="-landroid -llog" \
-DANDROID_CPP_FEATURES="rtti exceptions" \
..

如果编译出现错误 “undefined reference to `__android_log_write'”,编辑代码手动选择DefaultLogHandler的实现

./toolchain.cmake内容
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_VERSION ) set(CMAKE_C_COMPILER arm-linux-androideabi-gcc) #set(CMAKE_FIND_ROOT_PATH /root/NanoPi2/linux-3.4.y/usr/include) SET(CMAKE_FIND_ROOT_PATH ${SDK_SYS_ROOT_PATH})
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
protobuf-c编译
将libprotobuf.a libprotobuf-lite.a libprotobuf-c.a拷贝到工具链的目录/home/floyd/ndk/lib
protobuf-c编译配置
./configure CC=arm-linux-androideabi-gcc CXX=arm-linux-androideabi-g++ --host=arm-linux protobuf_LIBS="-L//home/floyd/ndk/lib -lprotobuf"

检查Makefile

protoc_c_protoc_gen_c_LDADD = \
$(protobuf_LIBS) \
-lprotoc

更改为(依赖顺序protoc protobuf_LIBS):

protoc_c_protoc_gen_c_LDADD = \
-lprotoc \
$(protobuf_LIBS)
make

基于protobufc的应用程序

只需要连接“-lprotobuf-lite -lprotobuf-c”

 

最新文章

  1. 21. Merge Two Sorted Lists —— Python
  2. WebApi 通过类名获取类并实例化
  3. failed to open the runspace pool. the server manager winrm plug-in might be corrupted or missing
  4. Python中的字符串与字符编码
  5. 编解码-marshalling
  6. Cocos2d-x SpriteFrameCache的使用
  7. Know How And When To Use System.Message_Level To Control Messages In Oracle Forms
  8. 安全攻城狮研发技能栈V1.0,附详细点评~
  9. copy与deepcopy
  10. Objective-C 编程艺术 (Zen and the Art of the Objective-C Craftsmanship 中文翻译)
  11. Git远程库版本回滚
  12. 浅谈linux静态库、动态库。
  13. django自制后台左侧导航代码
  14. Android平台上的Aplay与TinyAlsa移植使用
  15. 1259 整数划分 V2
  16. Django REST framework 中的序列化器
  17. WPF没落了吗?
  18. P1382 楼房
  19. hibernate整合进spring后的事务处理
  20. git 指定要提交的ssh key

热门文章

  1. maven打包时无法识别lombok中@Data生成的get set方法
  2. 2019-9-2-windows-10「设置」应用完整ms-settings快捷方式汇总
  3. Hdu 1150
  4. PYTHON网络爬虫与信息提取[scrapy框架应用](单元十、十一)
  5. linux awk命令详解,使用system来内嵌系统命令, awk合并两列
  6. Linux 内存管理之mmap详解
  7. springboot集成mongoDB 异常认证
  8. Directx教程(23) 简单的光照模型(2)
  9. spring自动扫描的注解@Component @Controller @Service @Repository
  10. Selenium-Switch与SelectApi接口