Buscar

Curriculum vitae y biografía de la autora Un par de artículos relacionados con mi hobby - robótica
Mis impresiones sobre la inmigración a Australia. En ruso. Recetas para la resolución de los problemas cotidianos
Linux puestos relacionados con la Windows puestos relacionados con la
Mensajes relacionados con el software Una gran cantidad de información sobre el hardware
Las diferentes herramientas que pueden resultar útiles Artículos sobre las tecnologías web diferentes
Todo lo que no encaja en el resto del menú RSS feed de este blog

Nube de etiquetas

Archivo

Enlaces

Blog de Andrey Mikhalchuk

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

Technoblog acerca de la vida

03 de junio 2009 Resolución de libopenocd.so: undefined reference to `FT_GetLatencyTimer un problema durante la compilación openocd

Si te atreves a crear OpenOCD desde el tronco svn y la suerte de tener un adaptador USB JTAG hay una buena probabilidad de que se vea algo así como

/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'

Aquí es cómo arreglar eso:


Si usted mira cuidadosamente las primeras líneas del registro, verá que la causa del problema es la salida de libtool. Si manualmente intercambiar. / .libs / Libopenocd.so y libftd2xx.a.0.4.16 en el comando que funciona muy bien. Pasé algún tiempo tratando de arreglar el guión libtool defectuoso que viene con openocd, pero bien finos se dio cuenta de que soy demasiado perezoso para entender la lógica rota de Almore 9000 del código de script de shell y ejecutado, posiblemente, el más tonto de parches que había hecho. Así que para solucionar el problema de secuencia de comandos de libtool abierta en el árbol de código fuente OpenOCD (no el que está en / usr / lib) y seguir la línea en alguna parte neare 8044. Va a encontrar líneas como estas:

*) new_libs="$new_libs $deplib" ;;
esac
done
compile_deplibs="$new_libs"
compile_command="$compile_command $compile_deplibs"
finalize_command="$finalize_command $finalize_deplibs"

Inmediatamente después de estas líneas agregue este código:

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

... O algo así como las líneas anteriores que representen adecuadamente el diseño de fuentes y versiones. Ejecutar hacer después de este mod y todo lo que debería compilar bien. Eso fue tonto. Pero funcionó!

Oh, sí, una cosa más. Si usted va a ver también este error:

openocd.texi:12: @include `version.texi': No such file or directory.

a continuación, sólo crear el archivo doc / version.texi con este contenido:

@set UPDATED 20 January 2009
@set UPDATED-MONTH January 2009
@set EDITION 0.1.0
@set VERSION 0.1.0

Ufff ... espero que sea menos que implementará más errores en esta pieza sobresaliente de software.

Esta entrada se publicó en el hardware , Linux .

No hay comentarios

No hay comentarios

Deja un comentario

Mapa del Sitio (C) Andrey Mikhalchuk, 2005-2008