More adventures with libmtp
So even though I managed to get libmtp compiled under Windows, I can't get it to work with Node.js. I've decided to take the same approach as what I did with ffmpeg's libavutil library, and cross-compile it under Linux instead.
To do this, I needed mingw64 on my Linux machine:
sudo apt-get install mingw-w64
sudo apt-get install mingw-w64-tools
It doesn't look like libusb has been pre-compiled for mingw64 on Linux, so I had to do the following:
git clone https://github.com/libusb/libusb.git
git checkout v1.0.23
./autogen.sh
./configure --host=x86_64-w64-mingw32
make
DESTDIR=$HOME/Code/mingw64/ make install
This installs the libusb library (compiled for Windows) under $HOME/Code/mingw64/
. Then I had to configure libmtp to use our Windows libusb build:
PKG_CONFIG_PATH=$HOME/Code/mingw64/usr/local/lib/pkgconfig ./configure --host=x86_64-w64-mingw32
make
Again I had to fix unicode.c
to get it working. I should submit this work as a PR to libmtp.
Next step: Try to get this working in as a native Node.js addon.
For reference:
http://www.tinc-vpn.org/examples/cross-compiling-64-bit-windows-binary/
I’m publishing this as part of 100 Days To Offload. You can join in yourself by visiting https://100daystooffload.com.