在bada程序里使用靜態(tài)庫
靜態(tài)庫把目標文件集合起來,使用ar (archive)程序創(chuàng)建。靜態(tài)庫的二進制文件以”a”拓展名結束。靜態(tài)庫讓用戶可以連接程序,而不需重新編輯代碼,從而節(jié)省了編輯時間。
本文介紹了如何創(chuàng)建靜態(tài)文件,將它們與你的程序連接起來,在你的程序中使用它們的方法。(推薦閱讀:在bada程序中使用共享庫)
創(chuàng)建靜態(tài)庫
為了創(chuàng)建靜態(tài)庫,你必須首先在bad IDE中為庫創(chuàng)建一個項目,然后為不同的連編配置定義不同的屬性。然后,你必須應以庫的API,***,你必須構建庫二進制。如需了解更多信息,請參閱以下部分:
創(chuàng)建一個庫項目
為了創(chuàng)建靜態(tài)庫:
◆在bada IDE中,選擇 File > New > bada Application Project.
如果bada Application Project選項不可見,確保你使用的是bada C++.
◆輸入項目名稱,選擇bada Static Library項目類型;
◆點擊完成Finish

圖:創(chuàng)建靜態(tài)庫
設置C/C++ Build 屬性
你必須為新的靜態(tài)庫設定build artifact設置。這些設置與Simulator和目標連編配置的設置一樣。
為了設置build artifact:
◆在bada IDE Project Explorer中,右擊靜態(tài)庫項目,選擇Properties。
◆在Properties窗口,選擇C/C++ Build > Settings
◆在Build Artifact鍵上,檢查輸出前綴是否為lib,artifact 拓展名是否為a。
◆點擊OK。
庫文件命名為 lib

圖:在build artifact中的設置
定義庫API
你必須在頭文件中宣布庫API,在相應的.cpp文件中定義它們。
下面的代碼段顯示如何為你的程序發(fā)布庫API。
- // This method is archived in libStatLib.a
- int StatLibMethod(void);
- // User-defined class archived in libStatLib.a
- class MyClass {
- public:
- MyClass();
- virtual ~MyClass();
- void PrintMessage(void);
- };
注:準備歸檔的庫方法和類必須宣布為一般的C++ declarations。
構建庫
你必須構建一個庫項目以生成庫二進制文件。為了為每個連編配置構建項目,在bada IDE里,選擇Project > Build Project。
如果連編成功,每個配置會生成相應的二進制文件,如下所示(libStatLib.a)。二進制文件位于項目的工作空間文件夾中。如, C:\bada\1.0.0\IDE\workspace\StatLib\.Target-Debug\libStatLib.a。

圖:生成庫二進制文件
將靜態(tài)庫連接到你的程序上
為了在你的bada程序中使用庫的方法,你必須將庫與程序連接起來,把相應的頭文件防止在程序的.cpp文件中。此外,你必須定義庫和在程序項目屬性中通往其位置的搜索路徑。
為了設定在程序項目屬性中的庫和搜索路徑:
◆在bada IDE Project Explorer中,右擊程序項目,選定Properties;
◆在Properties窗口中,選定C/C++ Build > Settings;
◆從Configuration的下拉菜單中,選定恰當?shù)倪B編配置。
◆在Tool Settings 鍵中,選定bada C++ Linker > Miscellaneous.
◆添加在Other objects下使用的靜態(tài)庫,包括帶庫名稱的路徑細節(jié)。
◆點擊Apply。
◆為其他連編配置重復步驟3-6.
◆保存設置,點擊OK.

圖:程序項目中的庫設置
使用靜態(tài)庫方法
將靜態(tài)庫連接到程序后,你可以使用程序中的庫API中定義的方法。
下面的代碼段顯示了使用靜態(tài)庫的方法。
- // Using the static library methods
- MyClass* obj = new MyClass;
- obj->PrintMessage();
- delete obj;
【編輯推薦】