Если же вы решитесь построить OpenOCD из SVN ствол и повезло, что адаптер USB JTAG есть хороший шанс, что вы увидите что-то вроде /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'
Вот как это исправить:
Если вы внимательно посмотрите на первые строки журнала, вы увидите, что причиной проблемы является Libtool выход. Если вы вручную менять. / .libs / Libopenocd.so и libftd2xx.a.0.4.16 в команде будет работать нормально. Я провел некоторое время, пытаясь устранить неисправность сценарий Libtool, которая поставляется с OpenOCD, но finelly понял, что я слишком ленив, чтобы понять логику сломанной almore 9000 коде скрипта и осуществляется, возможно, глупый патч я когда-либо делал. Таким образом, чтобы решить эту проблему открытой сценарий Libtool в OpenOCD дерево исходных текстов (не тот, в / USR /, б) и пойти куда-нибудь neare линии 8044. Вы можете найти следующие строки: *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs"
Сразу после этих строк добавьте следующий код: 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
... Или что-то вроде линии выше, что достойно представлять ваши источники расположение и версий. Запуск сделать после этого мода, и все должно составлять только штрафом. Это было глупо. Но это сработало! Ах да, еще одна вещь. Если вы также увидите сообщение об ошибке: openocd.texi:12: @include `version.texi': No such file or directory.
то просто создайте файл DOC / version.texi с таким содержимым: @set UPDATED 20 January 2009 @set UPDATED-MONTH January 2009 @set EDITION 0.1.0 @set VERSION 0.1.0
Уффф ... Я надеюсь, что это все, если они будут выполнять больше ошибок в этой выдающейся части программного обеспечения. Это сообщение опубликовано в оборудование , Linux . |