Åke Rehnman
2012-10-14 11:01:25 UTC
I had trouble linking with FTDI windows library. I finally had to resort to change the configure script, then rename the library to libftd2xx.a to get the linking to complete. It seems like the ftd2xx.lib is completely missing from the link command line.
Any Idea what the problem is?
/Ake
Making all in src/apps/jtag
make[2]: Entering directory `/cygdrive/c/akre/urjtag/urjtag/src/apps/jtag'
/bin/sh ../../../libtool --tag=CC --mode=link gcc -std=gnu99 -Wall -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith -gstabs+ -O0 -I/cygdrive/c/akre/urjtag/ftdi-cdm-drivers -o jtag.exe jtag.o ../../../src/liburjtag.la -lintl -lioperm -lreadline
libtool: link: gcc -std=gnu99 -Wall -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith -gstabs+ -O0 -I/cygdrive/c/akre/urjtag/ftdi-cdm-drivers -o jtag.exe jtag.o ../../../src/.libs/liburjtag.a -L/usr/local/lib -L/usr/lib/ncursesw -L/usr/lib /usr/local/lib/libusb-1.0.dll.a /usr/lib/libintl.dll.a /usr/lib/libiconv.dll.a /usr/lib/libioperm.dll.a /usr/lib/libpopt.dll.a -lreadline -L/usr/local/lib -L/usr/local/lib
../../../src/.libs/liburjtag.a(libftd2xx.o): In function `usbconn_ftd2xx_flush':
/cygdrive/c/akre/urjtag/urjtag/src/tap/usbconn/libftd2xx.c:124: undefined reference to `***@16'
/cygdrive/c/akre/urjtag/urjtag/src/tap/usbconn/libftd2xx.c:160: undefined reference to `***@16'
../../../src/.libs/liburjtag.a(libftd2xx.o): In function `usbconn_ftd2xx_read':
/cygdrive/c/akre/urjtag/urjtag/src/tap/usbconn/libftd2xx.c:222: undefined reference to `***@16'
../../../src/.libs/liburjtag.a(libftd2xx.o): In function `usbconn_ftd2xx_connect':
/cygdrive/c/akre/urjtag/urjtag/src/tap/usbconn/libftd2xx.c:354: undefined reference to `***@4'
.
. a lot more of these
.
/cygdrive/c/akre/urjtag/urjtag/src/tap/usbconn/usbconnft232r.c:502: undefined reference to `***@12'
/cygdrive/c/akre/urjtag/urjtag/src/tap/usbconn/usbconnft232r.c:509: undefined reference to `***@4'
../../../src/.libs/liburjtag.a(usbconnft232r.o): In function `usbconn_ft232r_close':
/cygdrive/c/akre/urjtag/urjtag/src/tap/usbconn/usbconnft232r.c:529: undefined reference to `***@4'
collect2: ld returned 1 exit status
Makefile:420: recipe for target `jtag.exe' failed
make[2]: *** [jtag.exe] Error 1
make[2]: Leaving directory `/cygdrive/c/akre/urjtag/urjtag/src/apps/jtag'
Makefile:451: recipe for target `all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/cygdrive/c/akre/urjtag/urjtag'
Makefile:381: recipe for target `all' failed
make: *** [all] Error 2
Changed configure.ac
@@ -294,11 +295,14 @@
HAVELIBFTD2XX=yes
case $host in
*cygwin*|*mingw*)
+#akre
CFLAGS="$CFLAGS -I$with_ftd2xx"
- AS_IF([test -d "$with_ftd2xx/i386"], [
+ LDFLAGS="$LDFLAGS -no-undefined -L$with_ftd2xx"
+ AS_IF([test -d "$with_ftd2xx/i386x"], [
FTD2XXLIB="$with_ftd2xx/i386/ftd2xx.lib"
],[
- FTD2XXLIB="$with_ftd2xx/ftd2xx.lib"
+# FTD2XXLIB="$with_ftd2xx/ftd2xx.lib"
+ FTD2XXLIB="-lftd2xx $LIBS"
])
;;
*)
Any Idea what the problem is?
/Ake
Making all in src/apps/jtag
make[2]: Entering directory `/cygdrive/c/akre/urjtag/urjtag/src/apps/jtag'
/bin/sh ../../../libtool --tag=CC --mode=link gcc -std=gnu99 -Wall -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith -gstabs+ -O0 -I/cygdrive/c/akre/urjtag/ftdi-cdm-drivers -o jtag.exe jtag.o ../../../src/liburjtag.la -lintl -lioperm -lreadline
libtool: link: gcc -std=gnu99 -Wall -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith -gstabs+ -O0 -I/cygdrive/c/akre/urjtag/ftdi-cdm-drivers -o jtag.exe jtag.o ../../../src/.libs/liburjtag.a -L/usr/local/lib -L/usr/lib/ncursesw -L/usr/lib /usr/local/lib/libusb-1.0.dll.a /usr/lib/libintl.dll.a /usr/lib/libiconv.dll.a /usr/lib/libioperm.dll.a /usr/lib/libpopt.dll.a -lreadline -L/usr/local/lib -L/usr/local/lib
../../../src/.libs/liburjtag.a(libftd2xx.o): In function `usbconn_ftd2xx_flush':
/cygdrive/c/akre/urjtag/urjtag/src/tap/usbconn/libftd2xx.c:124: undefined reference to `***@16'
/cygdrive/c/akre/urjtag/urjtag/src/tap/usbconn/libftd2xx.c:160: undefined reference to `***@16'
../../../src/.libs/liburjtag.a(libftd2xx.o): In function `usbconn_ftd2xx_read':
/cygdrive/c/akre/urjtag/urjtag/src/tap/usbconn/libftd2xx.c:222: undefined reference to `***@16'
../../../src/.libs/liburjtag.a(libftd2xx.o): In function `usbconn_ftd2xx_connect':
/cygdrive/c/akre/urjtag/urjtag/src/tap/usbconn/libftd2xx.c:354: undefined reference to `***@4'
.
. a lot more of these
.
/cygdrive/c/akre/urjtag/urjtag/src/tap/usbconn/usbconnft232r.c:502: undefined reference to `***@12'
/cygdrive/c/akre/urjtag/urjtag/src/tap/usbconn/usbconnft232r.c:509: undefined reference to `***@4'
../../../src/.libs/liburjtag.a(usbconnft232r.o): In function `usbconn_ft232r_close':
/cygdrive/c/akre/urjtag/urjtag/src/tap/usbconn/usbconnft232r.c:529: undefined reference to `***@4'
collect2: ld returned 1 exit status
Makefile:420: recipe for target `jtag.exe' failed
make[2]: *** [jtag.exe] Error 1
make[2]: Leaving directory `/cygdrive/c/akre/urjtag/urjtag/src/apps/jtag'
Makefile:451: recipe for target `all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/cygdrive/c/akre/urjtag/urjtag'
Makefile:381: recipe for target `all' failed
make: *** [all] Error 2
Changed configure.ac
@@ -294,11 +295,14 @@
HAVELIBFTD2XX=yes
case $host in
*cygwin*|*mingw*)
+#akre
CFLAGS="$CFLAGS -I$with_ftd2xx"
- AS_IF([test -d "$with_ftd2xx/i386"], [
+ LDFLAGS="$LDFLAGS -no-undefined -L$with_ftd2xx"
+ AS_IF([test -d "$with_ftd2xx/i386x"], [
FTD2XXLIB="$with_ftd2xx/i386/ftd2xx.lib"
],[
- FTD2XXLIB="$with_ftd2xx/ftd2xx.lib"
+# FTD2XXLIB="$with_ftd2xx/ftd2xx.lib"
+ FTD2XXLIB="-lftd2xx $LIBS"
])
;;
*)