אם אתה מעז לבנות 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 / lib) וללכת לקו 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
או משהו כזה ... את השורות הנ"ל, כי במידה מספקת מייצגים פריסת מקורות וגירסאות. הפעל לעשות אחרי זה mod והכל צריך לקמפל בסדר גמור. זה היה טיפשי. אבל זה עבד! אה, כן, עוד דבר אחד. אם תראה גם את השגיאה הבאה: 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
Ufff ... אני מקווה שזה זה אלא אם תיישם יותר באגים ביצירה זו יוצאת דופן של התוכנה. פוסט זה פורסם ב חומרה , לינוקס . |