* How to cross compile libftdi-1.x for Windows? * 1 - Prepare a pkg-config wrapper according to https://www.flameeyes.eu/autotools-mythbuster/pkgconfig/cross-compiling.html , additionally export PKG_CONFIG_ALLOW_SYSTEM_CFLAGS and PKG_CONFIG_ALLOW_SYSTEM_LIBS. 2 - Write a CMake toolchain file according to http://www.vtk.org/Wiki/CmakeMingw . Change the path to your future sysroot. 3 - Get libusb sources (either by cloning the git repo or by downloading a tarball). Unpack, autogen.sh (when building from git), and configure like this: ./configure --build=`./config.guess` --host=i686-w64-mingw32 \ --prefix=/usr --with-sysroot=$HOME/i686-w64-mingw32-root/ 4 - run make install DESTDIR=$HOME/i686-w64-mingw32-root/ 5 - go to libftdi-1.x source directory and run cmake -DCMAKE_TOOLCHAIN_FILE=~/Toolchain-mingw.cmake \ -DCMAKE_INSTALL_PREFIX="/usr" \ -DPKG_CONFIG_EXECUTABLE=`which i686-w64-mingw32-pkg-config` 6 - run make install DESTDIR=$HOME/i686-w64-mingw32-root/ * How to run libftdi-1.x under Windows * libusbx (or libusb-1.0) Windows backend will rely on a proper driver to run. Please refer to the following wiki page on the instruction of installation of the proper driver. https://github.com/libusbx/libusbx/wiki/Windows-Backend#wiki-How_to_use_libusbx_on_Windows As of Jan 09 2013, libusb-1.0 Windows backend only supports WinUSB and libusbx's support of libusb0.sys and libusbk.sys are considered less mature than WinUSB. Therefore, WinUSB driver installation using Zadig is recommended. Take note once you replace the original FTDI driver with WinUSB driver, you can no longer use the functionality the original FTDI driver provides (eg. Virtual Serial Port or D2XX).