protobuf DNK下的编译
2024-09-03 10:57:54
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”
最新文章
- 21. Merge Two Sorted Lists —— Python
- WebApi 通过类名获取类并实例化
- failed to open the runspace pool. the server manager winrm plug-in might be corrupted or missing
- Python中的字符串与字符编码
- 编解码-marshalling
- Cocos2d-x SpriteFrameCache的使用
- Know How And When To Use System.Message_Level To Control Messages In Oracle Forms
- 安全攻城狮研发技能栈V1.0,附详细点评~
- copy与deepcopy
- Objective-C 编程艺术 (Zen and the Art of the Objective-C Craftsmanship 中文翻译)
- Git远程库版本回滚
- 浅谈linux静态库、动态库。
- django自制后台左侧导航代码
- Android平台上的Aplay与TinyAlsa移植使用
- 1259 整数划分 V2
- Django REST framework 中的序列化器
- WPF没落了吗?
- P1382 楼房
- hibernate整合进spring后的事务处理
- git 指定要提交的ssh key
热门文章
- maven打包时无法识别lombok中@Data生成的get set方法
- 2019-9-2-windows-10「设置」应用完整ms-settings快捷方式汇总
- Hdu 1150
- PYTHON网络爬虫与信息提取[scrapy框架应用](单元十、十一)
- linux awk命令详解,使用system来内嵌系统命令, awk合并两列
- Linux 内存管理之mmap详解
- springboot集成mongoDB 异常认证
- Directx教程(23) 简单的光照模型(2)
- spring自动扫描的注解@Component @Controller @Service @Repository
- Selenium-Switch与SelectApi接口