Hvis du tør at bygge OpenOCD fra svn krop og heldige at have en USB-JTAG adapter er der en god chance for du vil se noget lignende /bin/sh ../libtool --tag=CC --mode=link gcc -std=gnu99 -g -O2 -I/root/Distr/ftd2/libftd2xx0.4.16 -Wall -Wstrict-prototypes -Wformat-security -Wextra -Wno-unused-parameter -Wbad-function-cast -Wcast-align -Wredundant-decls -Werror -o openocd main.o libopenocd.la -ldl /root/Distr/ftd2/libftd2xx0.4.16/static_lib/libftd2xx.a.0.4.16 -lpthread libtool: link: gcc -std=gnu99 -g -O2 -I/root/Distr/ftd2/libftd2xx0.4.16 -Wall -Wstrict-prototypes -Wformat-security -Wextra -Wno-unused-parameter -Wbad-function-cast -Wcast-align -Wredundant-decls -Werror -o .libs/openocd main.o /root/Distr/ftd2/libftd2xx0.4.16/static_lib/libftd2xx.a.0.4.16 ./.libs/libopenocd.so -ldl -lpthread ./.libs/libopenocd.so: undefined reference to `FT_GetLatencyTimer' ./.libs/libopenocd.so: undefined reference to `FT_Close' ./.libs/libopenocd.so: undefined reference to `FT_SetBitMode' ./.libs/libopenocd.so: undefined reference to `FT_GetDeviceInfo' ./.libs/libopenocd.so: undefined reference to `FT_OpenEx' ./.libs/libopenocd.so: undefined reference to `FT_Read' ./.libs/libopenocd.so: undefined reference to `FT_SetTimeouts' ./.libs/libopenocd.so: undefined reference to `FT_SetVIDPID' ./.libs/libopenocd.so: undefined reference to `FT_Write' ./.libs/libopenocd.so: undefined reference to `FT_SetLatencyTimer' ./.libs/libopenocd.so: undefined reference to `FT_ListDevices' ./.libs/libopenocd.so: undefined reference to `FT_Purge'
Her er hvordan du løser, at:
Hvis du omhyggeligt ser på de første par linjer af den logfil, du vil se, at årsagen til problemet er libtool output. Hvis du manuelt bytte. / .libs / Libopenocd.so og libftd2xx.a.0.4.16 i kommandoen vil det fungere fint. Jeg tilbragte noget tid at forsøge at løse den defekte libtool script, der kommer med openocd, men finelly indså, at jeg er for doven til at forstå den knækkede logik almore 9000 af shell script kode og implementeret muligvis det dummeste plaster jeg nogensinde havde gjort. Så for at løse problemet åben libtool script i OpenOCD kilde træet (IKKE den i / usr / lib) og gå et sted neare linje 8044. Du vil finde linier som disse: *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs"
Lige efter disse linjer tilføje denne kode: if test x"$compile_command" = x"gcc -std=gnu99 -g -O2 -I/root/Distr/ftd2/libftd2xx0.4.16 -Wall -Wstrict-prototypes -Wformat-security -Wextra -Wno-unused-parameter -Wbad-function-cast -Wcast-align -Wredundant-decls -Werror -o @OUTPUT@ main.o /root/Distr/ftd2/libftd2xx0.4.16/static_lib/libftd2xx.a.0.4.16 ./.libs/libopenocd.so -ldl -lpthread"; then compile_command='gcc -std=gnu99 -g -O2 -I/root/Distr/ftd2/libftd2xx0.4.16 -Wall-Wstrict-prototypes -Wformat-security -Wextra -Wno-unused-parameter -Wbad-function-cast -Wcast-align -Wredundant-decls -Werror -o @OUTPUT@ main.o ./.libs/libopenocd.so /root/Distr/ftd2/libftd2xx0.4.16/static_lib/libftd2xx.a.0.4.16 -ldl -lpthread' fi
... Eller noget lignende linjerne ovenfor, at tilstrækkeligt repræsentere din kilder layout og versioner. Kør gøre efter dette mod, og alt skulle kompilere fint. Det var stum. Men det virkede! Oh, yeah, en ting mere. Hvis du vil se også denne fejl: openocd.texi:12: @include `version.texi': No such file or directory.
så bare oprette filen doc / version.texi med dette indhold: @set UPDATED 20 January 2009 @set UPDATED-MONTH January 2009 @set EDITION 0.1.0 @set VERSION 0.1.0
Ufff ... Jeg håber det er det, medmindre de vil gennemføre flere fejl på dette fremragende stykke software. Dette indlæg er offentliggjort i Hardware , Linux . |