Arm Mbed OS support forum

Mbed studio 1.3.1 でバイナリライブラリ(.a)ファイルをリンクする方法

mbedOSサポートフォーラムの皆様

mbed studio 1.3.1 でバイナリ.aファイルをリンクする方法をご存じの方
ご教示下さい。

以下の
lib_binary.a
バイナリファイルをリンクするには、どこに記述を追加すれば良いかご存じの方
ご教示下さい。

mbed-cliでは、リンクできていますので、ファイル自体に問題がないことを確認できています。
バイナリファイルのみ提供されているライブラリのため、ソースがありません。

mbedのプロジェクトフォルダに、入れてもリンクされず、libフォルダを作成し入れてもリンクされず
でした。

バイナリライブラリの.aファイルの作成は、

にヒントが書かれていますが、使いかたのヒントが見つけられません。

よろしくお願い致します。

試してみたのですが、Mbed Studioでは拡張子を .ar にしないとライブラリとして認識されないようです(理由は分かりませんが)。
lib.ar ファイルをプロジェクトのルートに置いて、リンクされるのを確認しました。

ご回答ありがとうございます。返信遅くなりました。
拡張子を"ar"にすれば良いのですね。
ファイル名を変えるだけで良ければ、今後は、ご教示頂いた方法を使っていきます。
大変参考になりありがとうございました。

私は、以下の様なめんどくさい方法で回避しました。
なかなかmbedstudioのリンク処理している箇所が見つからず苦労しました。

以下フォルダ内の各*.jsonファイルのLD箇所に追記して、リンクさせる方法です。
\Mbed Programs\ProjectName\mbed-os\tools\profiles
debug.json
develop.json
release.json
上記ファイル内の
“ARMC6”:
“ld”:
リンカーの項目最後にフォルダ名とファイル名を追記して回避していました。
, “./lib/lib.a”

mbed祭LTのハマった内容で発表したいくらいです(笑)
また、mbed祭にも参加します。
ご覧頂きありがとうございました。

ldの全行は以下です。
“ld”: ["–verbose", “–remove”, “–show_full_path”, “–legacyalign”,
“–any_contingency”, “–keep=os_cb_sections” , “./lib/lib.a”]

1 Like

ご連絡ありがとうございます。調べてみたら、ここに設定がありました。

ARMC6ビルドの場合は、ライブラリの拡張子は.arに設定されていました(GCC, IARの場合は、.a)。