从来好事天生俭,自古瓜儿苦后甜。这篇文章主要讲述(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!!!
【(OK—C++程序) Eclipse C/C++ — CentOS 7 + android-ndk + eclipse-cpp-mars-R】
推荐阅读
- (OK) 编译libiconv-1.14(静态库)—CentOS 7— android-ndk
- ( OK—C程序 )Eclipse C/C++— CentOS 7 + android-ndk + eclipse-cpp-mars-R
- git push -u origin master的实际原理
- PE工具中的DG分区工具
- #yyds干货盘点#FFmpeg在Linux下编译使用
- 活动目录
- 启用 SharePoint 2010 的匿名用户访问支持
- netcat——文件传输
- Redis主从复制哨兵实现,并模拟master故障场景