I recently went to build with f2xx, and came across this problem again.
Your “fixes” to the .ac file worked for me as well. I’d like to see this pushed
into a real solution somehow though, as I’m sure it will frustrate many more
people in the future, any ideas?
From: Peter Budny [mailto:pbu...@unicoi.com]
Sent: October-15-12 9:57 AM
To: 'Åke Rehnman'; urjtag-development@lists.sourceforge.net
Subject: Re: [UrJTAG-dev] Trouble linking with ftd2xx.lib
Åke,
It’s not just you; I encountered this problem over a year ago. It seems that
libtool is supposed to automatically determine the dependency on ftd2xx.lib,
but doesn’t do so. It generated a dependency file that was basically empty.
Unfortunately I don’t know libtool well enough to know how to fix it
“correctly”.
I believe if you look in src/.libs/liburjtag.lai (or maybe it was just
src/liburjtag.la?), you can see the dependencies that libtool generated. Mine
looks like this:
# liburjtag.la - a libtool library file
# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# The name that we can dlopen(3).
dlname=''
# Names of this library.
library_names=''
# The name of the static archive.
old_library='liburjtag.a'
# Linker flags that can not go in dependency_libs.
inherited_linker_flags=''
# Libraries that this one depends upon.
dependency_libs=''
# Names of additional weak libraries provided by this library
weak_library_names=''
# Version information for liburjtag.
current=0
age=0
revision=0
# Is this an already installed library?
installed=yes
# Should we warn about portability when linking against -modules?
shouldnotlink=no
# Files to dlopen/dlpreopen
dlopen=''
dlpreopen=''
# Directory that this library needs to be installed in:
libdir='/usr/local/lib'
Notice the complete lack of any mention of ftd2xx. (The file src/liburjtag.la
only differs in “installed=no”.)
--
~ Peter Budny
Unicoi Systems
supp...@unicoi.com
From: Åke Rehnman [mailto:ake.rehn...@gmail.com]
Sent: Sunday, October 14, 2012 7:01 AM
To: urjtag-development@lists.sourceforge.net
Subject: [UrJTAG-dev] Trouble linking with ftd2xx.lib
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 `__imp__FT_Write@16'
/cygdrive/c/akre/urjtag/urjtag/src/tap/usbconn/libftd2xx.c:160: undefined
reference to `__imp__FT_Read@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 `__imp__FT_Read@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 `__imp__FT_Close@4'
.
. a lot more of these
.
/cygdrive/c/akre/urjtag/urjtag/src/tap/usbconn/usbconnft232r.c:502: undefined
reference to `__imp__FT_SetBitMode@12'
/cygdrive/c/akre/urjtag/urjtag/src/tap/usbconn/usbconnft232r.c:509: undefined
reference to `__imp__FT_Close@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 `__imp__FT_Close@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"
])
;;
*)
------------------------------------------------------------------------------
LogMeIn Central: Instant, anywhere, Remote PC access and management.
Stay in control, update software, and manage PCs from one command center
Diagnose problems and improve visibility into emerging IT issues
Automate, monitor and manage. Do more in less time with Central
http://p.sf.net/sfu/logmein12331_d2d
_______________________________________________
UrJTAG-development mailing list
UrJTAG-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/urjtag-development