4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Mbed StudioでMbed OS以外のライブラリも共有してSharedにする

Last updated at Posted at 2020-10-03

Mbed OSの共有機能

Mbed Studioで1GBほどあるOSのコードを複数プロジェクトで共有することでストレージの圧迫を防ぐ機能が追加されました

Mbed OS以外のライブラリへの転用

Mbed OSの共有だとストレージの圧迫を防ぐことが主かもしれませんが複数のプロジェクトで使用している開発中のライブラリが個人開発してる規模の小さめのライブラリなどであればGitなどを返さずにほかのプロジェクトにも反映されるのは割とうれしいことだったりするかもしれません
(ロボコンの開発中にいちいちGit操作するのが面倒だっただけ)

プロジェクトごとにライブラリを用意した場合
image.png

ライブラリを共有した場合
image.png
常に一か所からライブラリを参照する

やること

フォルダのジャンクション機能を使ってリンクさせます
Windows環境以外でもジャンクション機能を使えば同じことはできるはず(確認してません)

方法

参照元となるライブラリを置いておくフォルダを作る。
Mbed Studioのプロジェクトにおいておけば更新とか楽なので「ShareOS」とか適当なプロジェクトを作ってライブラリをダウンロードする
image.png (148.2 kB)

ライブラリのリンクを行いたいプロジェクトのディレクトリ↓でコマンドプロンプトを開く
image.png

以下のコマンドでジャンクションを作成

mklink /j <ライブラリ名> <参照元のディレクトリの完全パス>

今回の例だとこんな感じ

mklink /j ArduinoUsbHostShield "C:\Users\<hoge>\Mbed Programs\ShareOS\ArduinoUsbHostShield"

Mbed Programsみたいな空白が入ってるディレクトリ名はコマンドの区切れ目と認識されるのでパスは" "でくくる

ジャンクションが作成されましたと出ればOK

ショートカットと同じマークがついたディレクトリが作成されている
image.png (57.6 kB)

あとはライブラリとして認識させるために<ライブラリ名>.libファイルを参照元からコピペしてくる
image.png (60.5 kB)

完成
image.png (260.5 kB)

バッチファイル(.bat)で作業を簡単にする

以下を文字コードShift-JISで保存

mbedliblink.bat
@echo off
cd %~dp0

if exist "%1" (
    set varlibpath=%~f1.lib
    REM echo フォルダ発見
    REM echo 必要ライブラリファイル名: %varlibpath%
    if exist "%varlibpath%" (
        REM echo ライブラリファイル発見
        echo ジャンクションを作成します
        mklink /j %~n1 "%~f1"
        echo ライブラリファイルをコピーします
        copy "%varlibpath%" "%~dp0%~n1.lib"
        echo 作業が終了しました
        goto end
    ) else (
        echo ライブラリファイルが見つかりません
    )
) else (
    echo 有効なパスではありません
)

:end
PAUSE
exit /b 0

このバッチファイルをライブラリのリンクをしたいディレクトリに置く

image.png

バッチファイルを置いたディレクトリ(左)とライブラリを置いてるディレクトリ(右)を開いてライブラリのフォルダをバッチファイルにドラッグ&ドロップする
image.png

ライブラリがリンクされた
image.png

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?