zoukankan      html  css  js  c++  java
  • Ubuntu下编译boost for Android

    下载https://github.com/moritz-wundke/Boost-for-Android

    解压后进入目录

    运行 ./build-android.sh $(NDK_ROOT)

    NDK_ROOT就是ndk-build所在的那个目录

    然后会自动下载源码进行编译,NDK r19以上会自动选择c++_shared runtime library,会下载1.70版,然后生成多个ABI的库

    若要选择其它的运行时库等等,需要修改build-android.sh???具体不会

    生成后在Android studio里使用,如下配置cmake

    ##########添加boost库 begin#########
    #因为不存在findboost.cmake所以手动配置
    #之后就可使用后就可用${Boost_INCLUDE_DIR}和${Boost_LIBRARIES}了
    #set(Boost_ADDITIONAL_VERSIONS "1.70")
    set(BOOST_ROOT /home/hk/Android/boost/${ANDROID_ABI})
    set(Boost_INCLUDE_DIR ${BOOST_ROOT}/include/boost-1_70)
    set(Boost_LIBRARY_DIR ${BOOST_ROOT}/lib)
    #用通配符同时添加多个lib库文件依赖
    file(GLOB Boost_LIBRARIES "${Boost_LIBRARY_DIR}/libboost*.a")
    
    include_directories(${Boost_INCLUDE_DIR})
    ##########添加boost库 end######################################

    这样链接

    #链接库
    target_link_libraries(
            native-lib
            ${Boost_LIBRARIES}
    )

     测试代码为

    //测试boost
    extern "C" JNIEXPORT jstring JNICALL
    Java_com_example_myvio_MainActivity_stringFromJNI(
            JNIEnv *env,
            jobject /* this */) {
        std::string hello = "Hello MyVIO";
    
        //boost::dynamic_bitset<> db4(std::string("0100"));
        //db4.flip();//1011
        /*for(int i=0;i<4;i++)
            if(db4[i]==1)
                hello=hello+"1";
            else
                hello=hello+"0";*/
    
        boost::dynamic_bitset<> db4(4, BOOST_BINARY(1010));
        db4[0] &= 1;
        db4[1] ^= 1;
        //注意右边是低位
        for(int i=0;i<4;i++)
            if(db4[i]==1)
                hello=hello+"1";
            else
                hello=hello+"0";
    
    
        return env->NewStringUTF(hello.c_str());
    }
  • 相关阅读:
    Go语言实现:【剑指offer】剪绳子
    delphi10.3安装使用mySQL
    uniGUI学习之把窗口分成左,右边(上下)三部分,并且在运行中可以动态调节其相对大小(36)
    uniGUI学习之UniStringGrid(35)
    uniGUI之主窗口折叠UI之UniTreeMenu(32-2)
    好网站
    ios图片
    ios启动图的相关问题
    自学php
    Parse error: syntax error, unexpected $end in diguoclassfunctions.php on line 1246
  • 原文地址:https://www.cnblogs.com/qq2523984508/p/11520930.html
Copyright © 2011-2022 走看看