動機
libusb を入門しようとしたのですが、いろいろ躓いた点についてメモとして書いておきます。
現状の問題点
”libusb インストール”などと調べると、
sudo apt install libusb-1.0-0
してね、
と出てくるけど、これがよくない。
公式のGithubにあるExamplesを実行しようとすると、躓いきます。
libusb1.0.27
から、初期化の方法として
libusb_init_context(ctx, options, num_options)
という関数が追加されたようなのですが、
上記のaptを使ってインストールする方法だと、
libusb1.0.25
が入ってしまっていたようで、Examplesのコンパイルが通りませんでした。
以下に正しいインストール手順を示しておきます。
(参考:実行環境)
$: cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
ちゃんとGit cloneしたほうがいい
$: git clone https://github.com/libusb/libusb.git
(↓いるかわからないけど、一応実行しました。)
$: git checkout tags/v1.0.27 -b V1.0.27
$: ./configure --enable-udev --disable-static
$: make
#: make install
L ./bootstarp.shを実行
L ./Installを実行
L ./configureファイルができるので、実行
↓
1.0.27が入る。
バージョンはLIBUSB_API_VERSIONで定義されているので、
printf("%x\n", LIBUSB_API_VERSION);
すればよく、
これから、
https://libusb.sourceforge.io/api-1.0/group__libusb__misc.html#gaabe4bc36a83358685d36a6c853cbb4de
と比較してやれば、バージョンがわかります。
注意;
また、一度1.0.25などを入れてしまった場合はautoremoveするなどしておきましょう。
おまけ
・コンパイルオプション
$: gcc testlibusb.c -l usb-1.0