libftdi Archives

Subject: Re: Re: How to install libftdi under Win7

From: Xiaofan Chen <xiaofanc@xxxxxxxxx>
To: libftdi@xxxxxxxxxxxxxxxxxxxxxxx
Date: Sun, 17 Feb 2013 09:27:06 +0800
On Sun, Feb 17, 2013 at 4:10 AM, Robert Schilling <Fun_Extra_300@xxxxxxx> wrote:
> I tried to compile it on a second computer, running WinXP
> where I freshly installed MinGW, CMake, Swig and libusb.
> But I still get the same undefined references to the C
> extensions.

You can see I have the same problem with 64bit
MinGW-w64 and 64bit Python. But I have no problems
with 32bit Python and 32bit MinGW.org.

If you have problems when using MinGW Makefile CMake
generator, try MSys Makefile generator. You need to
install MinGW and MSys from MinGW.org.

Here is my run log.

1. Start MSys and prepare

$ cd /c/work/
$ cd libftdi/libftdi1-1.0
$ mkdir build_python32
$ cd build_python32/

2. Using CMake-GUI

$ cmake-gui

2.1) Select Configure and choose "MSys Makefile". It will
generate some red errors with regard to libusb-1.0.

The C compiler identification is GNU 4.7.2
The CXX compiler identification is GNU 4.7.2
Check for working C compiler: C:/MinGW/bin/gcc.exe
Check for working C compiler: C:/MinGW/bin/gcc.exe -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Check for working CXX compiler: C:/MinGW/bin/g++.exe
Check for working CXX compiler: C:/MinGW/bin/g++.exe -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
-- Build type: RelWithDebInfo
Could NOT find LIBUSB (missing:  LIBUSB_INCLUDE_DIR)
Could NOT find Boost
Found Doxygen: c:/Program Files/doxygen/bin/doxygen.exe (found version "1.8.3")
Doxygen found.
Generating API documentation with Doxygen
Detected git snapshot version: unknown
Boost not found, won't build libftdi1++
Could NOT find SWIG (missing:  SWIG_EXECUTABLE SWIG_DIR)
Found PythonLibs: C:/Python33/libs/libpython33.a (found version "3.3.0")
Found PythonInterp: C:/Python33/python.exe (found version "3.3")
Not building python bindings
Found PkgConfig: C:/MinGW/bin/pkg-config.exe (found version "0.28")
checking for module 'libconfuse'
  found libconfuse, version 2.7
Building ftdi_eeprom
Building example programs.
Could NOT find Boost
NOT building unit test (requires boost unit test framework)
CMake Error: The following variables are used in this project, but
they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the
CMake files:
LIBUSB_INCLUDE_DIR (ADVANCED)
   used as include directory in directory C:/work/libftdi/libftdi1-1.0
   used as include directory in directory C:/work/libftdi/libftdi1-1.0
   used as include directory in directory C:/work/libftdi/libftdi1-1.0/src
   used as include directory in directory C:/work/libftdi/libftdi1-1.0/src
   used as include directory in directory
C:/work/libftdi/libftdi1-1.0/ftdi_eeprom
   used as include directory in directory C:/work/libftdi/libftdi1-1.0/examples
   used as include directory in directory C:/work/libftdi/libftdi1-1.0/examples
   used as include directory in directory C:/work/libftdi/libftdi1-1.0/examples
   used as include directory in directory C:/work/libftdi/libftdi1-1.0/examples
   used as include directory in directory C:/work/libftdi/libftdi1-1.0/examples
   used as include directory in directory C:/work/libftdi/libftdi1-1.0/examples
   used as include directory in directory C:/work/libftdi/libftdi1-1.0/examples
   used as include directory in directory C:/work/libftdi/libftdi1-1.0/examples
   used as include directory in directory C:/work/libftdi/libftdi1-1.0/examples
   used as include directory in directory C:/work/libftdi/libftdi1-1.0/examples

Configuring incomplete, errors occurred!

2.2) Point CMake to find the correct location of your swig.exe
location. In my case, it is here.
    C:/Program Files/swigwin-2.0.9/swig.exe

 Point CMake to find the correct libusb-1.0 (using libusbx
1.0.14 Windows binary) include file (libusb.h) and library file
(libusb-1.0.dll.a).

In my case, libusb.h is here.
    C:/work/libusbx/libusbx-1.0.14-win/include/libusbx-1.0
libusb-1.0.dll.a is here.
    C:/work/libusbx/libusbx-1.0.14-win/MinGW32/dll/libusb-1.0.dll.a

Ignore the other issues like Boost bindings.

2.3) Point CMake to the correct Python locations if it has
not done so (when you have multiple Python installations
like me).
Python executable: C:/Python32/python.exe
Python include dir: C:/Python32/include
Python library: C:/Python32/libs/libpython32.a

2.3) Configure again, you should now see no more red errors.
-- Build type: RelWithDebInfo
Could NOT find Boost
Doxygen found.
Generating API documentation with Doxygen
Detected git snapshot version: unknown
Boost not found, won't build libftdi1++
Found SWIG: C:/Program Files/swigwin-2.0.9/swig.exe (found version "2.0.9")
Found PythonLibs: C:/Python32/libs/libpython32.a (found version "3.2.3")
Found PythonInterp: C:/Python32/python.exe (found version "3.2.3")
Building python bindings via swig. Will be installed under
Building ftdi_eeprom
Building example programs.
Could NOT find Boost
NOT building unit test (requires boost unit test framework)
Configuring done

2.4) Click "Generate" to generate the Makefile.

2.5) Close CMake-GUI

3. Run make to generate the binaries.
$ make
Scanning dependencies of target docs
[  5%] Generating doc/html/index.html
[  5%] Built target docs
Scanning dependencies of target ftdi1
[ 10%] Building C object src/CMakeFiles/ftdi1.dir/ftdi.c.obj
c:/work/libftdi/libftdi1-1.0/src/ftdi.c: In function 'ftdi_write_data_submit':
c:/work/libftdi/libftdi1-1.0/src/ftdi.c:1552:31: warning: passing argument 6 of
'libusb_fill_bulk_transfer' from incompatible pointer type [enabled by default]
In file included from c:/work/libftdi/libftdi1-1.0/src/ftdi.c:31:0:
C:/work/libusbx/libusbx-1.0.14-win/include/libusbx-1.0/libusb.h:1211:20: note: e
xpected 'libusb_transfer_cb_fn' but argument is of type 'void (*)(struct libusb_
transfer *)'
c:/work/libftdi/libftdi1-1.0/src/ftdi.c: In function 'ftdi_read_data_submit':
c:/work/libftdi/libftdi1-1.0/src/ftdi.c:1634:5: warning: passing argument 6 of '
libusb_fill_bulk_transfer' from incompatible pointer type [enabled by default]
In file included from c:/work/libftdi/libftdi1-1.0/src/ftdi.c:31:0:
C:/work/libusbx/libusbx-1.0.14-win/include/libusbx-1.0/libusb.h:1211:20: note: e
xpected 'libusb_transfer_cb_fn' but argument is of type 'void (*)(struct libusb_
transfer *)'
[ 15%] Building C object src/CMakeFiles/ftdi1.dir/ftdi_stream.c.obj
c:/work/libftdi/libftdi1-1.0/src/ftdi_stream.c: In function 'ftdi_readstream':
c:/work/libftdi/libftdi1-1.0/src/ftdi_stream.c:202:35: warning: passing argument
 6 of 'libusb_fill_bulk_transfer' from incompatible pointer type [enabled by def
ault]
In file included from c:/work/libftdi/libftdi1-1.0/src/ftdi_stream.c:44:0:
C:/work/libusbx/libusbx-1.0.14-win/include/libusbx-1.0/libusb.h:1211:20: note: e
xpected 'libusb_transfer_cb_fn' but argument is of type 'void (*)(struct libusb_
transfer *)'
Linking C shared library libftdi1.dll
[ 15%] Built target ftdi1
Scanning dependencies of target ftdi1-static
[ 20%] Building C object src/CMakeFiles/ftdi1-static.dir/ftdi.c.obj
c:/work/libftdi/libftdi1-1.0/src/ftdi.c: In function 'ftdi_write_data_submit':
c:/work/libftdi/libftdi1-1.0/src/ftdi.c:1552:31: warning: passing argument 6 of
'libusb_fill_bulk_transfer' from incompatible pointer type [enabled by default]
In file included from c:/work/libftdi/libftdi1-1.0/src/ftdi.c:31:0:
C:/work/libusbx/libusbx-1.0.14-win/include/libusbx-1.0/libusb.h:1211:20: note: e
xpected 'libusb_transfer_cb_fn' but argument is of type 'void (*)(struct libusb_
transfer *)'
c:/work/libftdi/libftdi1-1.0/src/ftdi.c: In function 'ftdi_read_data_submit':
c:/work/libftdi/libftdi1-1.0/src/ftdi.c:1634:5: warning: passing argument 6 of '
libusb_fill_bulk_transfer' from incompatible pointer type [enabled by default]
In file included from c:/work/libftdi/libftdi1-1.0/src/ftdi.c:31:0:
C:/work/libusbx/libusbx-1.0.14-win/include/libusbx-1.0/libusb.h:1211:20: note: e
xpected 'libusb_transfer_cb_fn' but argument is of type 'void (*)(struct libusb_
transfer *)'
[ 25%] Building C object src/CMakeFiles/ftdi1-static.dir/ftdi_stream.c.obj
c:/work/libftdi/libftdi1-1.0/src/ftdi_stream.c: In function 'ftdi_readstream':
c:/work/libftdi/libftdi1-1.0/src/ftdi_stream.c:202:35: warning: passing argument
 6 of 'libusb_fill_bulk_transfer' from incompatible pointer type [enabled by def
ault]
In file included from c:/work/libftdi/libftdi1-1.0/src/ftdi_stream.c:44:0:
C:/work/libusbx/libusbx-1.0.14-win/include/libusbx-1.0/libusb.h:1211:20: note: e
xpected 'libusb_transfer_cb_fn' but argument is of type 'void (*)(struct libusb_
transfer *)'
Linking C static library libftdi1.a
[ 25%] Built target ftdi1-static
Scanning dependencies of target doc_i
[ 30%] Generating ../doc/xml/ftdi_8c.xml
[ 35%] Generating ftdi1_doc.i
[ 35%] Built target doc_i
[ 40%] Swig source
Scanning dependencies of target _ftdi1
[ 45%] Building C object bindings/CMakeFiles/_ftdi1.dir/ftdi1PYTHON_wrap.c.obj
Linking C shared module _ftdi1.pyd
[ 45%] Built target _ftdi1
Scanning dependencies of target ftdi_eeprom
[ 50%] Building C object ftdi_eeprom/CMakeFiles/ftdi_eeprom.dir/main.c.obj
Linking C executable ftdi_eeprom.exe
[ 50%] Built target ftdi_eeprom
Scanning dependencies of target baud_test
[ 55%] Building C object examples/CMakeFiles/baud_test.dir/baud_test.c.obj
Linking C executable baud_test.exe
[ 55%] Built target baud_test
Scanning dependencies of target bitbang
[ 60%] Building C object examples/CMakeFiles/bitbang.dir/bitbang.c.obj
c:/work/libftdi/libftdi1-1.0/examples/bitbang.c: In function 'main':
c:/work/libftdi/libftdi1-1.0/examples/bitbang.c:67:9: warning: unknown conversio
n type character 'h' in format [-Wformat]
c:/work/libftdi/libftdi1-1.0/examples/bitbang.c:67:9: warning: too many argument
s for format [-Wformat-extra-args]
Linking C executable bitbang.exe
[ 60%] Built target bitbang
Scanning dependencies of target bitbang2
[ 65%] Building C object examples/CMakeFiles/bitbang2.dir/bitbang2.c.obj
Linking C executable bitbang2.exe
[ 65%] Built target bitbang2
Scanning dependencies of target bitbang_cbus
[ 70%] Building C object examples/CMakeFiles/bitbang_cbus.dir/bitbang_cbus.c.obj

Linking C executable bitbang_cbus.exe
[ 70%] Built target bitbang_cbus
Scanning dependencies of target bitbang_ft2232
[ 75%] Building C object examples/CMakeFiles/bitbang_ft2232.dir/bitbang_ft2232.c
.obj
Linking C executable bitbang_ft2232.exe
[ 75%] Built target bitbang_ft2232
Scanning dependencies of target eeprom
[ 80%] Building C object examples/CMakeFiles/eeprom.dir/eeprom.c.obj
Linking C executable eeprom.exe
[ 80%] Built target eeprom
Scanning dependencies of target find_all
[ 85%] Building C object examples/CMakeFiles/find_all.dir/find_all.c.obj
Linking C executable find_all.exe
[ 85%] Built target find_all
Scanning dependencies of target serial_test
[ 90%] Building C object examples/CMakeFiles/serial_test.dir/serial_test.c.obj
Linking C executable serial_test.exe
[ 90%] Built target serial_test
Scanning dependencies of target simple
[ 95%] Building C object examples/CMakeFiles/simple.dir/simple.c.obj
Linking C executable simple.exe
[ 95%] Built target simple
Scanning dependencies of target stream_test
[100%] Building C object examples/CMakeFiles/stream_test.dir/stream_test.c.obj
c:/work/libftdi/libftdi1-1.0/examples/stream_test.c: In function 'readCallback':

c:/work/libftdi/libftdi1-1.0/examples/stream_test.c:87:28: warning: unknown conv
ersion type character 'l' in format [-Wformat]
c:/work/libftdi/libftdi1-1.0/examples/stream_test.c:87:28: warning: too many arg
uments for format [-Wformat-extra-args]
c:/work/libftdi/libftdi1-1.0/examples/stream_test.c:102:28: warning: unknown con
version type character 'l' in format [-Wformat]
c:/work/libftdi/libftdi1-1.0/examples/stream_test.c:102:28: warning: too many ar
guments for format [-Wformat-extra-args]
c:/work/libftdi/libftdi1-1.0/examples/stream_test.c: In function 'main':
c:/work/libftdi/libftdi1-1.0/examples/stream_test.c:252:16: warning: unknown con
version type character 'l' in format [-Wformat]
c:/work/libftdi/libftdi1-1.0/examples/stream_test.c:252:16: warning: unknown con
version type character 'L' in format [-Wformat]
c:/work/libftdi/libftdi1-1.0/examples/stream_test.c:252:16: warning: format '%d'
 expects argument of type 'int', but argument 4 has type 'uint64_t' [-Wformat]
c:/work/libftdi/libftdi1-1.0/examples/stream_test.c:252:16: warning: unknown con
version type character 'L' in format [-Wformat]
c:/work/libftdi/libftdi1-1.0/examples/stream_test.c:252:16: warning: too many ar
guments for format [-Wformat-extra-args]
c:/work/libftdi/libftdi1-1.0/examples/stream_test.c: In function 'check_outfile'
:
c:/work/libftdi/libftdi1-1.0/examples/stream_test.c:340:29: warning: unknown con
version type character 'l' in format [-Wformat]
c:/work/libftdi/libftdi1-1.0/examples/stream_test.c:340:29: warning: too many ar
guments for format [-Wformat-extra-args]
c:/work/libftdi/libftdi1-1.0/examples/stream_test.c:354:21: warning: unknown con
version type character 'l' in format [-Wformat]
c:/work/libftdi/libftdi1-1.0/examples/stream_test.c:354:21: warning: too many ar
guments for format [-Wformat-extra-args]
c:/work/libftdi/libftdi1-1.0/examples/stream_test.c:356:13: warning: unknown con
version type character 'l' in format [-Wformat]
c:/work/libftdi/libftdi1-1.0/examples/stream_test.c:356:13: warning: too many ar
guments for format [-Wformat-extra-args]
Linking C executable stream_test.exe
[100%] Built target stream_test

4. Copy libusb-1.0.dll and libftdi1.dll to the Python directory
    C:\Python32

5. Copy the python binding files _ftdi1.pyd and ftdi1.py
to Python library site package dirctrory
    C:\Python32\Lib\site-packages

6. Start Python 3.2 and run some tests.

Python 3.2.3 (default, Apr 11 2012, 07:15:24) [MSC v.1500 32 bit
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.

>>> import ftdi1 as ftdi
>>> context = ftdi.new()
>>> version_info = ftdi.get_library_version()
>>> version_info.major
1
>>> version_info.minor
0
>>> version_info.micro
0
>>> ret = ftdi.usb_open(context, 0x0403, 0xcff8)
>>> ret
0
>>> ret1, chipid = ftdi.read_chipid(context)
>>> ret1
0
>>> print( 'chip id: %X\n' % chipid )
chip id: -5A0F082F


-- 
Xiaofan

--
libftdi - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to libftdi+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx   

Current Thread