Поиск

Резюме и био автора Несколько статей, связанных с моим хобби - робототехника
Мои впечатления об иммиграции в Австралию. В русском языке. Рецепты для ежедневного решения проблем
Linux должности, связанные с Windows, должности, связанные с
Программное обеспечение должности, связанные с Большое количество информации об аппаратном
Различные инструменты могут оказаться полезными Сообщения о различных веб-технологий
Все, что не вписывается в остальной части меню RSS лента этого блога

Облако тегов

Архив

Связи

Андрей Михальчук Блог

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

Technoblog о жизни

3 июня 2009 Решение libopenocd.so: неопределенная ссылка на `FT_GetLatencyTimer" проблемы при компиляции OpenOCD

Если же вы решитесь построить 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 .

Нет комментариев

Комментариев пока нет

Оставить комментарий

Карта сайта (С) Андрей Михальчук, 2005-2008