On Fri, Jun 18, 2010 at 7:21 AM, Xiaofan Chen <[email protected]> wrote: > On Tue, Jun 15, 2010 at 7:55 PM, Xiaofan Chen <[email protected]> wrote: >> It seems to me the current preferred method to build Windows >> binary is to use Cross build under Linux (with MinGW and Cmake). > > Indeed to use cross build under Linux is much easier. > > The only thing need to fix is the README.mingw file. > > For me I just use the prebuild libusb-1.0 Windows backend. > > sudo cp libusb.h /usr/i586-mingw32msvc/include/ > sudo cp libusb-1.0.dll.a /usr/i586-mingw32msvc/lib/ > sudo cp libusb-1.0.a /usr/i586-mingw32msvc/lib/ >
I tried it again with the latest git, it seems to me that I need to add -lsetupapi -lole32 to CMakeCache.txt to solve the linking problems this time. This is also recommended by the author. http://www.libusb.org/wiki/windows_backend //Libraries linked by defalut with all C applications. CMAKE_C_STANDARD_LIBRARIES:STRING=-lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -lsetupapi -lole32 If not, it will fail. mc...@ubuntu:~/Desktop/build/libftdi/libftdi-1.0/build-win32$ make Scanning dependencies of target ftdi [ 6%] Building C object src/CMakeFiles/ftdi.dir/ftdi.c.obj [ 13%] Building C object src/CMakeFiles/ftdi.dir/ftdi_stream.c.obj /home/mcuee/Desktop/build/libftdi/libftdi-1.0/src/ftdi_stream.c: In function ‘ftdi_readstream’: /home/mcuee/Desktop/build/libftdi/libftdi-1.0/src/ftdi_stream.c:181: warning: passing argument 6 of ‘libusb_fill_bulk_transfer’ from incompatible pointer type Linking C shared library libftdi.dll Creating library file: libftdi.dll.a /usr/i586-mingw32msvc/lib/libusb-1.0.a(libusb_1_0_la-windows_usb.o):windows_usb.c:(.text+0x2fe): undefined reference to `__imp__setupdienumdevicei...@12' /usr/i586-mingw32msvc/lib/libusb-1.0.a(libusb_1_0_la-windows_usb.o):windows_usb.c:(.text+0x336): undefined reference to `__imp__setupdienumdeviceinterfa...@20' /usr/i586-mingw32msvc/lib/libusb-1.0.a(libusb_1_0_la-windows_usb.o):windows_usb.c:(.text+0x36c): undefined reference to `__imp__setupdigetdeviceinterfacedeta...@24' /usr/i586-mingw32msvc/lib/libusb-1.0.a(libusb_1_0_la-windows_usb.o):windows_usb.c:(.text+0x3c4): undefined reference to `__imp__setupdidestroydeviceinfol...@4' /usr/i586-mingw32msvc/lib/libusb-1.0.a(libusb_1_0_la-windows_usb.o):windows_usb.c:(.text+0x421): undefined reference to `__imp__setupdigetdeviceinterfacedeta...@24' /usr/i586-mingw32msvc/lib/libusb-1.0.a(libusb_1_0_la-windows_usb.o):windows_usb.c:(.text+0x453): undefined reference to `__imp__setupdigetclassde...@16' /usr/i586-mingw32msvc/lib/libusb-1.0.a(libusb_1_0_la-windows_usb.o):windows_usb.c:(.text+0x269c): undefined reference to `__imp__setupdigetdeviceregistryproper...@28' /usr/i586-mingw32msvc/lib/libusb-1.0.a(libusb_1_0_la-windows_usb.o):windows_usb.c:(.text+0x2739): undefined reference to `__imp__setupdigetdeviceregistryproper...@28' /usr/i586-mingw32msvc/lib/libusb-1.0.a(libusb_1_0_la-windows_usb.o):windows_usb.c:(.text+0x2a84): undefined reference to `__imp__setupdigetdeviceregistryproper...@28' /usr/i586-mingw32msvc/lib/libusb-1.0.a(libusb_1_0_la-windows_usb.o):windows_usb.c:(.text+0x2e3a): undefined reference to `__imp__setupdigetclassde...@16' /usr/i586-mingw32msvc/lib/libusb-1.0.a(libusb_1_0_la-windows_usb.o):windows_usb.c:(.text+0x2f08): undefined reference to `__imp__setupdienumdevicei...@12' /usr/i586-mingw32msvc/lib/libusb-1.0.a(libusb_1_0_la-windows_usb.o):windows_usb.c:(.text+0x2f4d): undefined reference to `__imp__setupdiopendevreg...@24' /usr/i586-mingw32msvc/lib/libusb-1.0.a(libusb_1_0_la-windows_usb.o):windows_usb.c:(.text+0x3077): undefined reference to `__imp__setupdidestroydeviceinfol...@4' /usr/i586-mingw32msvc/lib/libusb-1.0.a(libusb_1_0_la-windows_usb.o):windows_usb.c:(.text+0x321c): undefined reference to `__imp__setupdigetdeviceregistryproper...@28' /usr/i586-mingw32msvc/lib/libusb-1.0.a(libusb_1_0_la-windows_usb.o):windows_usb.c:(.text+0x32bf): undefined reference to `__imp__setupdigetdeviceregistryproper...@28' collect2: ld returned 1 exit status make[2]: *** [src/libftdi.dll] Error 1 make[1]: *** [src/CMakeFiles/ftdi.dir/all] Error 2 make: *** [all] Error 2 -- Xiaofan http://sourceforge.net/projects/libusb-win32/ -- libftdi - see http://www.intra2net.com/en/developer/libftdi for details. To unsubscribe send a mail to [email protected]
