[Bada开发]使用静态库

bada是三星公司自主研发的操作系统,本文介绍了如何创建静态文件,将它们与你的程序连接起来,在你的程序中使用静态库的方法。静态库让用户可以连接程序,而不需重新编辑代码,从而节省了编辑时间。

静态库把目标文件集合起来,使用ar (archive)程序创建。静态库的二进制文件以”a”拓展名结束。静态库让用户可以连接程序,而不需重新编辑代码,从而节省了编辑时间。

本文介绍了如何创建静态文件,将它们与你的程序连接起来,在你的程序中使用它们的方法。(推荐阅读:在bada程序中使用共享库

创建静态库

为了创建静态库,你必须首先在bad IDE中为库创建一个项目,然后为不同的连编配置定义不同的属性。然后,你必须应以库的API,最后,你必须构建库二进制。如需了解更多信息,请参阅以下部分:

创建一个库项目

为了创建静态库:

◆在bada IDE中,选择 File > New > bada Application Project.

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

◆输入项目名称,选择bada Static Library项目类型;

◆点击完成Finish

 

 

图:创建静态库

设置C/C++ Build 属性

你必须为新的静态库设定build artifact设置。这些设置与Simulator和目标连编配置的设置一样。

为了设置build artifact:

◆在bada IDE Project Explorer中,右击静态库项目,选择Properties。

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

◆在Build Artifact键上,检查输出前缀是否为lib,artifact 拓展名是否为a。

◆点击OK。

库文件命名为 lib .a.

 

 

图:在build artifact中的设置

定义库API

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

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

 

  1. // This method is archived in libStatLib.a
  2. int StatLibMethod(void);
  3. // User-defined class archived in libStatLib.a
  4. class MyClass {
  5. public:
  6. MyClass();
  7. virtual ~MyClass();
  8. void PrintMessage(void);
  9. };

 

注:准备归档的库方法和类必须宣布为一般的C++ declarations。

构建库

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

如果连编成功,每个配置会生成相应的二进制文件,如下所示(libStatLib.a)。二进制文件位于项目的工作空间文件夹中。如, C:\bada\1.0.0\IDE\workspace\StatLib\.Target-Debug\libStatLib.a。

 

 

图:生成库二进制文件

将静态库连接到你的程序上

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

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

◆在bada IDE Project Explorer中,右击程序项目,选定Properties;

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

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

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

◆添加在Other objects下使用的静态库,包括带库名称的路径细节。

◆点击Apply。

◆为其他连编配置重复步骤3-6.

◆保存设置,点击OK.

 

 

图:程序项目中的库设置

使用静态库方法

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

下面的代码段显示了使用静态库的方法。

  1. // Using the static library methods
  2. MyClass* obj = new MyClass;
  3. obj->PrintMessage();
  4. delete obj;
posted @ 2014-06-04 14:25  It's_Lee  阅读(229)  评论(0编辑  收藏  举报