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 . |