עבור לתוכן

LDFLAGS חסרה הפנייה לנתיב ספרייה

Featured Replies

פורסם

מה אני עושה לא נכון? איך לתקן?

ld-uClibc.so.0 נמצא בנתיב שסופק כפרמטר.


SHELL = /bin/sh
CC = /opt/cross/ddwrt/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin/mips-linux-gcc
TARGET= test
LDFLAGS = -B /opt/cross/ddwrt/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/lib

all:test

test:
$(CC) -o $(TARGET) test.c $(LDFLAGS)
clean:
rm *~


test $ make
/opt/cross/ddwrt/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin/mips-linux-gcc -o test test.c -B /opt/cross/ddwrt/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/lib/opt/cross/ddwrt/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin/../lib/gcc/mips-openwrt-linux-uclibc/4.3.3/../../../../mips-openwrt-linux-uclibc/bin/ld: warning: ld-uClibc.so.0, needed by /opt/cross/ddwrt/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin/../lib/gcc/mips-openwrt-linux-uclibc/4.3.3/../../../../mips-openwrt-linux-uclibc/lib/libc.so, not found (try using -rpath or -rpath-link)
/opt/cross/ddwrt/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin/../lib/gcc/mips-openwrt-linux-uclibc/4.3.3/../../../../mips-openwrt-linux-uclibc/lib/libc.so: undefined reference to `_dl_app_init_array
'/opt/cross/ddwrt/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin/../lib/gcc/mips-openwrt-linux-uclibc/4.3.3/../../../../mips-openwrt-linux-uclibc/lib/libc.so: undefined reference to `_dl_loaded_modules
'/opt/cross/ddwrt/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin/../lib/gcc/mips-openwrt-linux-uclibc/4.3.3/../../../../mips-openwrt-linux-uclibc/lib/libc.so: undefined reference to `_dl_app_fini_array'collect2: ld returned 1 exit statusmake: *** [test] Error 1

נערך על-ידי nat64x

פורסם

ניסית להשתמש ב-rpath או rpath-link כמו שמציעים בשגיאה? השאלה הזאת נראית דומה לבעיה שלך.

פורסם
  • מחבר

כן.

עם LDFLAGS += -rpath-link /opt/cross/ddwrt/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/lib/ld-uClibc.so.0

הוא מקפל ויוצר את הקובץ אבל מתלונן:

mips-linux-gcc: unrecognized option '-rpath-link'

ניסתי להוסיף:


TARGET_LDFLAGS+=-rpath-link $(shell find $(STAGING_DIR) -name ld-uClibc.so.0

לא עזר.

אפשר הסבר על השימוש הנכון?

נראה שהשורה צריכה להיות רק:

LDFLAGS += /opt/cross/ddwrt/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/lib/ld-uClibc.so.0

אבל משום מה זה שונה מהתיעוד ברשת.

נערך על-ידי nat64x

פורסם

אני לא מדבר מנסיוi עם mips ו-cross-compiling ככה שאני מציע רק לפי שאני מוצא, לכן יכול להיות שמה שכתבת אמור להיות נכון.

בכל אופן, ניסית לרשום את הדגל עם שני מקפים? למרות שכאן למשל יש רק מקף אחד...

TARGET_LDFLAGS += --rpath-link $(shell find $(STAGING_DIR)) -name ld-uClibc.so.0

פורסם
  • מחבר

כן, ניסתי פחות או יותר הכל. שרפתי כמה שעות טובות.

אני שמח עכשיו לפחות שזה עובד וזה העיקר, אבל מעצבן אותי שהפקודות שמצאתי לא עבדו כמצופה, וסתם ביזבזתי הרבה זמן.

בהתחלה לא שמתי לב שהוא בכל זאת מקמפל את הקובץ וחשבתי שזה נכשל בגלל השגיאה.

נערך על-ידי nat64x

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים