Rechercher

CV et bio de l'auteur Couple d'articles liés à mon passe-temps - la robotique
Mes impressions sur l'immigration en Australie. En russe seulement. Recettes pour la résolution de problèmes quotidiens
Linux-postes liés à Windows postes liés à
Logiciel postes liés à Un plein d'infos sur le matériel
Différents outils peuvent vous être utiles Messages sur les technologies Web divers
Tout ce qui ne rentre pas le reste du menu Flux RSS pour ce blog

Tag Cloud

Archives

Liens

Andrey Mikhaltchouk Blog

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

Technoblog sur la vie

3 juin 2009 Résolution libopenocd.so: undefined reference to `FT_GetLatencyTimer« problème lors de la compilation openocd

Si vous osez construire openocd à partir du tronc svn et la chance d'avoir un adaptateur USB JTAG il ya une bonne chance que vous verrez quelque chose comme

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

Voici comment résoudre ce problème:


Si vous regardez attentivement les premières lignes du journal, vous verrez que la cause du problème est la sortie libtool. Si vous avez manuellement échanger. / .libs / Libopenocd.so et libftd2xx.a.0.4.16 dans la commande, il fonctionnera très bien. J'ai passé quelque temps à essayer de corriger le script libtool défectueux qui est livré avec openocd, mais finelly rendu compte que je suis trop paresseux pour comprendre la logique de la rupture Almore 9000 de code de script shell et mis en œuvre peut-être le plus stupide que j'aie jamais correctif fait. Donc, pour corriger le script libtool problème ouvert dans l'arborescence des sources openocd (pas celui dans / usr / lib) et aller quelque part en ligne neare 8044. Vous trouverez des lignes comme celles-ci:

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

Juste après ces lignes, ajoutez ce code:

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

... Ou quelque chose comme les lignes ci-dessus que représenter adéquatement votre mise en page des sources et des versions. Exécutez make après ce mod et tout devrait très bien compiler. Cela était muet. Mais cela a fonctionné!!

Oh, ouais, encore une chose. Si vous allez voir aussi cette erreur:

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

puis il suffit de créer le fichier doc / version.texi avec ce contenu:

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

Ufff ... J'espère que c'est moins qu'ils mettront en œuvre plus de bugs dans cette pièce remarquable de logiciels.

Ce poste est publié en matériel , Linux .

Pas de commentaires

Pas de commentaires à ce jour

Laisser un commentaire

Plan du site (C) Andrey Mikhaltchouk, 2005-2008