zoukankan      html  css  js  c++  java
  • protobuf DNK下的编译

    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=16 
        -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 1)
    
    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班考试总结
    性别
    2019.08.20上课笔记2
    2019.08.20上课笔记3
    2019.08.20上课笔记1
    单词2
    数据类和运算符
    2019.08.14单词1
    2019.08.14上课笔记1
    request.get... getHeader 能取得的信息 参数
  • 原文地址:https://www.cnblogs.com/rayfloyd/p/11880844.html
Copyright © 2011-2022 走看看