[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. _EXPORT_ int OspfDynaLib(void);
  3. // Exported user-defined class
  4. class _EXPORT_ MyClass {
  5. public:
  6. MyClass(void){};
  7. virtual ~MyClass();
  8. void PrintMessage(void);
  9. };

 

注:在共享库外需要读取的库方法或者类必须使用_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;

 

posted @ 2014-06-04 14:25  It's_Lee  阅读(218)  评论(0编辑  收藏  举报