在bada程序中使用共享库

移动开发
本文介绍了如何在bada程序中使用共享库,共享或动态库是一个二进制文件,包括一套可调用的C/C++方法。文件说明了如何创建共享库,将它们连接到你的撤出那个徐,及如何在你的程序中使用这些方法。

共享或动态库是一个二进制文件,包括一套可调用的C/C++方法。文件中的代码是不限位置的,这就意味着代码可以存在任何存储位置被上载和执行。Bada程序可以上载和卸载共享的库。而interpreter(Ld.exe)会处理在运行时间的上载和卸载流程,在共享的库目标和bada程序之间建立连接。

文件说明了如何创建共享库,将它们连接到你的撤出那个徐,及如何在你的程序中使用这些方法。

创建共享库为了创建共享库,你必须首先在bada IDE中为该库创建一个项目,为不同的连编配置定义属性。然后,你必须定义库API。最后,你必须构建库二进制文件。如需了解更多,参见下面内容:

创建库项目:

为了创建共享库项目:

在bada IDE中,选定File > New > bada Application Project;

◆如果bada Application Project选项不可见,确保你使用的是bada C++.

◆输入项目名称,选择bada Shared Library project type。

◆点击FINISH

 

 

图:创建共享库

设置C/C++ Build Properties

你必须为新的共享文件设置build artifact settings。要求为目标和Simulator连编配置进行不同的设置。

为了给Target-Debug配置设定build artifacts:

◆在bada IDE Project Explorer中,右击共享库项目,选定Properties;

◆在Properties窗口,选定C/C++ Build > Settings;

◆在Build Artifact键上,输入输出前缀lib,及artifact拓展。

当你使用目标设备上的共享库时,库的文件按名必须是”lib”开头。

◆输入OK。

库文件命名为lib.so

 

 

图:设置Target-Debug build artifact

为了给Simulator-Debug配置设置build artifacts:

◆在bada IDE Project Explorer中,右击共享文件库,选定Properties;

◆在Properties窗口,选择C/C++ Build > Settings

◆在Build Artifact键上,输入输出前缀为lib,artifact 拓展名为dll.。

◆Simulator在Windows环境中运行,动态库为".dll"文件。因此,对Simulator来说,动态库的缺省artifact拓展必须设置为“dll”。

◆点击OK。

库文件命名为lib.dll.

 

 

图:设置Simulator-Debug build artifact

定义库API

你必须在头文件中宣布库API,然后在相应的.cpp文件中定义。

下面的代码段显示了如何为你的程序宣布库API

 

  1. // This method is exported from libDynaLib.so  
  2.  
  3. _EXPORT_ int OspfDynaLib(void);  
  4.  
  5. // Exported user-defined class  
  6.  
  7. class _EXPORT_ MyClass {  
  8.  
  9. public:  
  10.  
  11. MyClass(void){};  
  12.  
  13. virtual ~MyClass();  
  14.  
  15. void PrintMessage(void);  
  16.  
  17. }; 

 

注:在共享库外需要读取的库方法或者类必须使用_EXPORT_ macro宣布。

构建库

你必须构建库项目以生成库二进制文件。为了为每个连编配置构建项目,在bada IDE中,选择Project > Build Project。

如果连编成功,为每个配置创建一个相应的二进制文件,如下表(libDynaLib.so, libDynaLib.dll)所示。二进制文件在项目的工作空间文件夹中,如, C:\bada\1.2.0\IDE\workspace\DynaLib\.Target-Debug\ libDynaLib.so。

 

 

图:生成的库二进制文件

将共享库连接到你的程序

为了在你的bada程序中使用库的输出方法,你必须将库连接到你的程序,把相应的头文件放置在程序的.cpp文件中。此外,你必须定义库和在程序项目属性中通往其位置的搜索路径。

为了设定在程序项目属性中的库和搜索路径:

◆在bada IDE Project Explorer中,将lib文件夹添加到你的bada程序项目中;

◆复制用于目标连编配置的共享的库二进制文件到新创建的lib文件夹中;

◆为了在Simulator运行程序,你必须复制Simulator的连编配置的二进制文件(.dll file) 到Simulator的库路径上。如,C:\bada\1.0.0\Model\Wave_LP1\Simulator\

◆在Project Explorer中,右击程序项目,选定属性

◆在Properties窗口中,选定C/C++ Build > Settings;

◆从Configuration的下拉菜单中,选定恰当的连编配置。

◆在Tool Settings 键中,选定bada C++ Linker > Miscellaneous.

◆添加在Libraries (-l)下使用的共享库;

◆添加库名称,无前缀和文件拓展名。例如,添加libDynaLib.so binary文件为as DynaLib;

◆检查Library search path (-L)下的缺省库路径(${PROJECT_ROOT}/lib)出口。如果没有,新创的lib folder为搜素路径。

◆点击APPLY。

◆为其他连编配置重复步骤5-9.

◆保存设置,点击OK。

 

 

图:程序项目中的库设置

使用共享库方法

在你将共享库连接到程序后,你可以使用程序中库API定义的方法。

下面的代码段显示了使用共享库的方法。

 

  1. // Using the shared library methods   
  2. AppLog("Value from OspfDynaLib = %d",OspfDynaLib());  
  3. MyClass* obj = new MyClass;  
  4. obj->PrintMessage();  
  5. delete obj; 

 

【编辑推荐】

  1. bada开发:播放实时rtsp流
  2. 官方文档:什么是bada?
  3. 官方文档:bada API参考资料
  4. 三星bada学习笔记:HelloWorld篇
  5. 三星bada学习笔记:基本概念

 

责任编辑:佚名 来源: 三星官网
相关推荐

2010-04-22 10:41:18

静态库bada

2011-05-17 16:20:46

C++

2011-03-30 10:41:11

C++数据库

2011-06-30 10:50:39

Qt OpenCV

2011-06-28 10:03:37

Qt OpenCV qmake

2016-01-25 15:09:22

JavaScriptC程序

2009-09-22 12:17:59

ibmdwLotus

2011-05-27 08:48:13

Android HTML

2021-09-07 10:24:36

Vue应用程序Web Workers

2009-06-19 13:45:53

Java应用程序Jfreechart

2020-03-11 09:15:25

微信asyncawait

2013-10-09 11:15:49

Ubuntu应用程序

2021-04-22 06:15:59

Linux静态链接动态库

2011-09-06 16:30:32

iOS系统静态链接库

2009-11-23 19:52:55

ibmdwFlex

2022-08-30 20:00:37

零信任Linkerd

2022-11-23 15:26:25

Ubuntu程序坞

2020-03-20 14:48:46

SpringBootJava分布式

2023-04-12 15:25:09

Bytrace鸿蒙

2013-12-13 17:21:14

Lua脚本语言
点赞
收藏

51CTO技术栈公众号