Søg

Genoptag og bio af forfatteren Par artikler relateret til min hobby - robotteknologi
Mine indtryk om indvandring til Australien. I russisk alene. Opskrifter til dagligdags problemløsning
Linux-relaterede indlæg Windows-relaterede stillinger
Software-relaterede stillinger En masse info om hardware
Forskellige værktøjer, du kan finde nyttige Indlæg om forskellige web-teknologier
Alt hvad der ikke passer til resten af ​​menuen RSS feed for denne blog

Tag Cloud

Arkiv

Links

Andrey Mikhalchuk 's blog

English flagItalian flagKorean flagChinese (Simplified) flagPortuguese flagGerman flagFrench flagSpanish flagJapanese flagRussian flagDanish flagFinnish flagHebrew flag

Technoblog om livet

Jun 3, 2009 Løsning libopenocd.so: udefineret reference til `FT_GetLatencyTimer 'problem under openocd kompilering

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 .

Ingen kommentarer

Ingen kommentarer indtil videre

Efterlad et svar

Site Map (C) Andrey Mikhalchuk, 2005-2008