• (OK—C++程序) Eclipse C/C++ — CentOS 7 + android-ndk + eclipse-cpp-mars-R


    ftp://ftp.bluage.com/eclipse45/eclipse-cpp-mars-R-linux-gtk-x86_64.tar.gz
    ftp://ftp.bluage.com/eclipse45/eclipse-cpp-mars-R-win32-x86_64.zip

    CentOS 7  +  android-ndk-r10d-linux-x86_64.bin  +  eclipse-cpp-luna-SR2-linux-gtk-x86_64.tar.gz

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ------------  compile c++  ------------
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    eclipse的设置如下:
    Tool Chain Editor:
      Debug [Active]
      Cross GCC
      Gnu Make Builder
      Used tools:
        Cross GCC Compiler
        Cross G++ Compiler
        Cross GCC Linker
        Cross G++ Linker
        Cross GCC Archiver
        Cross GCC Assembler

    cross settings:
    arm-linux-androideabi-
    /opt/android-on-linux/android-ndk-r10d/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64

    cross g++ compiler:

    Include paths(-I):
    /opt/android-on-linux/android-ndk-r10d/sources/cxx-stl/stlport/stlport
    /opt/android-on-linux/android-ndk-r10d/platforms/android-21/arch-arm/usr/include
    /opt/android-on-linux/android-ndk-r10d/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/include
    /opt/android-on-linux/android-ndk-r10d/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9/include-fixed
    /opt/android-on-linux/android-ndk-r10d/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9/include

    Miscellaneous: --->
    other flags: -c -fmessage-length=0 -DANDROID -fno-exceptions
    勾选: -fPIC


    cross g++ linker:
    all options:  -nostdlib -L/opt/android-on-linux/android-ndk-r10d/sources/cxx-stl/stlport/libs/armeabi-v7a -L/opt/android-on-linux/android-ndk-r10d/platforms/android-21/arch-arm/usr/lib/
    general:  -nostdlib

    Libraries:
    (-l)  stdc++    stlport    c
    (-L)  /opt/android-on-linux/android-ndk-r10d/sources/cxx-stl/stlport/libs/armeabi-v7a
          /opt/android-on-linux/android-ndk-r10d/platforms/android-21/arch-arm/usr/lib/
    --------------------------
    因为 手机上 是| /system/lib/libstlport.so   
    所以,
    [root@localhost armeabi-v7a]# pwd
    /opt/android-on-linux/android-ndk-r10d/sources/cxx-stl/stlport/libs/armeabi-v7a
    [root@localhost armeabi-v7a]# adb pull /system/lib/libstlport.so .
    [root@localhost armeabi-v7a]# chmod 755 libstlport.so
    --------------------------


    Miscellaneous:
    Other options:
    -R/opt/android-on-linux/android-ndk-r10d/platforms/android-21/arch-arm/usr/lib
    Other objects:
    /opt/android-on-linux/android-ndk-r10d/platforms/android-21/arch-arm/usr/lib/crtbegin_dynamic.o
    /opt/android-on-linux/android-ndk-r10d/platforms/android-21/arch-arm/usr/lib/crtend_android.o

    +++++++++++ eclipse编译过程  出错
    >>>>>>>>
    /opt/android-on-linux/android-ndk-r10d/sources/cxx-stl/stlport/stlport/stl/_ostream.h:187: error: undefined reference to 'std::uncaught_exception()'
    collect2: error: ld returned 1 exit status
    make: *** [helloworldcpp] 错误 1
    >>>>>>>>

    解决方法:
    [root@localhost arm-linux-androideabi-4.9]# gedit /opt/android-on-linux/android-ndk-r10d/sources/cxx-stl/stlport/stlport/stl/_ostream.h

    将187行
          ~sentry() {
            if (_M_str.flags() & ios_base::unitbuf)
    #if !defined (_STLP_NO_UNCAUGHT_EXCEPT_SUPPORT)
              if (!uncaught_exception())
    #endif
                _M_str.flush();
          }

    修改为:

          ~sentry() {
          }


    +++++++++++ eclipse编译过程
    23:32:03 **** Incremental Build of configuration Debug for project helloworldcpp ****
    make all
    Building file: ../src/helloworldcpp.cpp
    Invoking: Cross G++ Compiler
    arm-linux-androideabi-g++ -I/opt/android-on-linux/android-ndk-r10d/sources/cxx-stl/stlport/stlport -I/opt/android-on-linux/android-ndk-r10d/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/include -I/opt/android-on-linux/android-ndk-r10d/platforms/android-21/arch-arm/usr/include -I/opt/android-on-linux/android-ndk-r10d/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9/include-fixed -I/opt/android-on-linux/android-ndk-r10d/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9/include -O0 -g3 -Wall -c -fmessage-length=0 -DANDROID -fno-exceptions -fPIC -MMD -MP -MF"src/helloworldcpp.d" -MT"src/helloworldcpp.d" -o "src/helloworldcpp.o" "../src/helloworldcpp.cpp"
    Finished building: ../src/helloworldcpp.cpp
     
    Building target: helloworldcpp
    Invoking: Cross G++ Linker
    arm-linux-androideabi-g++ -nostdlib -L/opt/android-on-linux/android-ndk-r10d/sources/cxx-stl/stlport/libs/armeabi-v7a -L/opt/android-on-linux/android-ndk-r10d/platforms/android-21/arch-arm/usr/lib/ -Xlinker -R/opt/android-on-linux/android-ndk-r10d/platforms/android-21/arch-arm/usr/lib -o "helloworldcpp"  ./src/helloworldcpp.o  /opt/android-on-linux/android-ndk-r10d/platforms/android-21/arch-arm/usr/lib/crtbegin_dynamic.o /opt/android-on-linux/android-ndk-r10d/platforms/android-21/arch-arm/usr/lib/crtend_android.o -lstdc++ -lstlport -lc
    Finished building target: helloworldcpp
     

    23:32:04 Build Finished (took 311ms)

    +++++++++++

    ++++++++ 在CentOS 7
    [root@localhost helloworldcpp]# pwd
    /opt/eclipse-workspace/helloworldcpp
    [root@localhost helloworldcpp]# ls
    Debug  src
    [root@localhost helloworldcpp]# cd Debug/
    [root@localhost Debug]# pwd
    /opt/eclipse-workspace/helloworldcpp/Debug
    [root@localhost Debug]# ls
    helloworldcpp  makefile  objects.mk  sources.mk  src
    [root@localhost Debug]# adb push helloworldcpp /data/data/
    4063 KB/s (102700 bytes in 0.024s)
    [root@localhost Debug]#

    +++++++++ Android (ARM)
    [root@localhost Debug]# adb root
    [root@localhost Debug]# adb shell
    root@mb526:/ # cd data/data
    root@mb526:/data/data # ./helloworldcpp                                        
    !!!Hello World!!!

  • 相关阅读:
    python_django_sae入口配置
    Python_问题收录总结
    python_不用循环打印1-1000
    python_程序模拟浏览器请求及会话保持
    python_socket
    【SIGGRAPH】【最终幻想XV】的战斗场景实时演示的要点解说
    【SIGGRAPH】最终幻想15的渲染技术
    【SIGGRAPH】用【有说服力的照片真实】技术实现最终幻想15的视觉特效
    罪恶装备 Xrd REVELATOR 3D进化出的非照片真实视觉
    《最终幻想XV》中角色AI的意识决策系统解析
  • 原文地址:https://www.cnblogs.com/ztguang/p/12647117.html
Copyright © 2020-2023  润新知