如何在Android平台下编译带STL的C++程序

如何在Android平台下编译带STL的C++程序,第1张

1、下载最新的Android SDK,下载Android NDK R9C版本。

2、如是在windows平台下需要在PATH中设置环境变量,以便于直接调用NDK来编译C++程序

将如下两个路径加入到PATH中:<ANDROID_NDK>;<ANDROID_SDK>\platform-tools

其中<NDK>为你的计算机上Android NDK的安装路径,<SDK>为Android SDK的安装路径

如果在你的SDK下没有platform-tools目录,则在Eclipse中按照如下截图进行 *** 作:

3、为要编译的C++程序建一个文件夹,如myproject。在myproject下再建一个jni文件夹,将源代码放在这个文件夹下,myproject/jni。

mkdir myproject

mkdir myproject/jni

4、在jni文件夹下建两个分别名为:androidmk和

applicationmk文件。androidmk类以于C++程序的makefile,applicationmk则指明当前程序依赖的库。

androidmk的示例为:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := my_first_app #指明C++程序编译出的可执行程序的名称

LOCAL_SRC_FILES:= my_first_app0cpp \ #指明要编译的源文件,可以有很多个

my_first_app1cpp\

include$(BUILD_EXECUTABLE)#表明编译的是可执行程序

//

applicationmk的示例为:(在applicationmk中指明STL库)

APP_STL:= gnustl_static

这里选STL库时有四个选项:

system - 使用默认最小的C++运行库,这样生成的应用体积小,内存占用小,但部分功能将无法支持

stlport_static - 使用STLport作为静态库,这项是Android开发网极力推荐的

stlport_shared - STLport 作为动态库,这个可能产生兼容性和部分低版本的Android固件,目前不推荐使用。

gnustl_static - 使用 GNU libstdc++ 作为静态库

默认情况下STLPORT是不支持C++异常处理和RTTI,所以不要出现 -fexceptions 或 -frtti ,如果真的需要可以使用gnustl_static来支持标准C++的特性,但生成的文件体积会偏大,运行效率会低一些。

支持C++异常处理,在Applicationmk中加入 LOCAL_CPPFLAGS +=

-fexceptions这句,同理支持RTTI,则加入LOCAL_CPPFLAGS +=

-frtti,这里再次提醒大家,第二条说的使用gnustl静态库,而不是stlport。

强制重新编译 STLPort ,在Applicationmk中加入 STLPORT_FORCE_REBUILD := true 可以强制重新编译STLPort源码,由于一些原因可能自己需要修改下STLPort库,一般普通的开发者无需使用此项

5、打开控制台(cmd),在myproject目录下用android的NDK build工具编译C++程序:

cd myproject

$NDK/ndk-build

如果程序没错的话,会编译出android的可执行程序,位置在myproject/libs/armeabi/my_first_app

8、将编译出来的my_first_app放到手机或是模拟器上运行。在windows的cmd上运行adbexe。

用adbexe将my_first_app程序push到手机或模拟器的/data/local目录上:

adbexepush myproject\libs\armeabi\my_first_app /data/local。

9、通过adb,在手机上运行my_frist_app:

在cmd上运行:

adbexe shell

由此进入到手机的linux终端上,接下来再更改my_first_app的权限使其可以运行:

cd /data/local

chmod 777 my_first_app

/my_first_app//如果没错的话,这一步即可运行my_first_app

至此在android上编译含STL的C++程序的过程结束。

PLC编程语言中的STL是步进触点指令,用在步进梯形图中。PLC编程是一种数字运算 *** 作的电子系统。它采用可编程序的存储器。

用来在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等 *** 作的指令,并通过数字式、模拟式的输入和输出,控制各种类型的机械或生产过程。PLC是采用"顺序扫描,不断循环"的方式进行工作的。

1、进入三菱plc中,点击打开按钮载入自己的相关程序。

2、等载入成功以后,需要选择菜单栏里面的视图窗口。

3、这个时候,就可以在里面点击左上角的STL选项了。

4、这样一来,即可实现三菱plc中stl指令的输入了。

STL是中文名标准模板库,惠普实验室开发的一系列软件的统称。STL是一些“容器”的集合。STL也是算法和其他一些组件的集合。STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件。STL的版本很多,常见的有HP STL、PJ STL、 SGI STL等。

L #number

ITD //16位整型转32位double并存放在累加器1

L L#-1 //把-1送入累加器1,#number送入累加器2

+D //累加器1=累加器1+累加器2

L L#32

D //累加器1=(#number+(-1))32

TAR2 //累加器2=累加器1,把地址寄存器AR2送入累加器1,

+D //累加器1=AR2+(#number+(-1))32

L #DeltaCnt4 //

TAK //累加器1=AR2+(#number+(-1))32 累加器2=#DeltaCnt4 LAR1 //ar1= AR2+(#number+(-1))32

TAK

T DID [AR1,P#12880] //[AR1,P#12880]表示指针地址,把累加器1(#DeltaCnt4)送入背景数据块ar1+偏移地址P#12880中,p#12880是32位指针。个人看法,以上。

离线或者编译、保存后再看那个按钮颜色。

最快回答 回答者:钻石用户 WWCWWC- 高级顾问 第14级 2016-11-11 16:39:48

你首先得添加一个块,然后再d出的对话框中选择FC块或者是FB块或者是其他的,后面就有相应的可以选择的编程语言,有LAD,STL,SCL等编程语言可以选择,然后选择STL,然后点确定,之后创建的块的默认编程语言就是STL语言

回答者:钻石用户 Caiken- 毕业实践员 第4级 2016-11-11 16:46:55

可以在LAD的程序块里面插入stl的network

或者新建FC/FB,选择编辑语言为stl

以上就是关于如何在Android平台下编译带STL的C++程序全部的内容,包括:如何在Android平台下编译带STL的C++程序、三菱PLC梯形图中STL是什么意思、这段西门子STL程序的意思是什么,新手敬问~等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9737771.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存