libftdi Archives

Subject: Re: To build libftdi-1.0 under Windows

From: Xiaofan Chen <xiaofanc@xxxxxxxxx>
To: libftdi@xxxxxxxxxxxxxxxxxxxxxxx
Date: Sun, 4 Jul 2010 19:55:57 +0800
On Fri, Jun 18, 2010 at 7:21 AM, Xiaofan Chen <xiaofanc@xxxxxxxxx> wrote:
> On Tue, Jun 15, 2010 at 7:55 PM, Xiaofan Chen <xiaofanc@xxxxxxxxx> 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.

mcuee@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__SetupDiEnumDeviceInfo@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__SetupDiEnumDeviceInterfaces@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__SetupDiGetDeviceInterfaceDetailA@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__SetupDiDestroyDeviceInfoList@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__SetupDiGetDeviceInterfaceDetailA@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__SetupDiGetClassDevsA@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__SetupDiGetDeviceRegistryPropertyA@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__SetupDiGetDeviceRegistryPropertyA@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__SetupDiGetDeviceRegistryPropertyA@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__SetupDiGetClassDevsA@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__SetupDiEnumDeviceInfo@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__SetupDiOpenDevRegKey@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__SetupDiDestroyDeviceInfoList@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__SetupDiGetDeviceRegistryPropertyW@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__SetupDiGetDeviceRegistryPropertyA@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 libftdi+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx

Current Thread