Azure Sphereでライブラリを作成する手順です。
Azure Sphere SDKのバージョンは18.11
で確認しました。(TP4.2.1
はダメです。アップデートしましょう。)
プロジェクトを作る
新しいソリューションに、ライブラリを呼び出すアプリケーションのプロジェクトと、呼び出されるライブラリのプロジェクトを作成します。
- MT3620App1 ... アプリケーションのプロジェクト。Blank Application for MT3620 RDB。
- Library1 ... ライブラリのプロジェクト。Blank Static Library。
ソリューションを右クリック > 追加 > 新しいプロジェクト
ソリューションエクスプローラーがこのようになっていれば正常です。
ライブラリにコードを追加
ライブラリのプロジェクトに含まれているLibrary1.hに宣言、Library1.cに定義を追記します。
Library1.h
# pragma once
int pow2(int a);
Library1.c
# include <Library1.h>
int pow2(int a)
{
return a * a;
}
アプリケーションにライブラリ参照を追加
アプリケーションのプロジェクトに、ライブラリの参照を追加します。
参照を右クリック > 参照の追加 > Library1をチェック
参照にLibrary1が追加されていれば正常です。
アプリケーションからライブラリを呼び出す
main.c(断片)
...
# include <Library1.h>
...
int main(int argc, char *argv[])
{
...
// Main loop
const struct timespec sleepTime = {1, 0};
int val = 0;
while (!terminationRequired) {
Log_Debug("%d %d\n", val, pow2(val));
val++;
nanosleep(&sleepTime, NULL);
}
...
}
実行結果
配布するライブラリのファイル
2018/11/23追記
ライブラリを他者に配布するときのファイルは、ヘッダファイルとアーカイブファイル(ライブラリファイル)ですが、どちらもプロジェクトフォルダ配下にあります。
- ヘッダーファイル ... Inc\Public\Library1.h
- アーカイブファイル(Debugビルド) ... bin\ARM\Debug\libLibrary1.a
- アーカイブファイル(Releaseビルド) ... bin\ARM\Release\libLibrary1.a