5

मैं एंड्रॉइड के लिए कुछ क्रॉस-कंपाइल करने की कोशिश कर रहा हूं, इसलिए मैं एक अलग टूलचैन का उपयोग कर रहा हूं। वहाँ एक पुस्तकालय है कि लिंकर यह नहीं मिल सकता है शिकायत कर रहा है है:लिंकर दावा लाइब्रेरी नहीं मिला, स्ट्रेस दिखाता है कि यह वैध पथ तक पहुंचने का प्रयास करता है हालांकि

arm-eabi-gcc: fatal error: -fuse-linker-plugin, but liblto_plugin.so not found 

पुस्तकालय निश्चित रूप से इस पथ में मौजूद है:

$ ls -l /mnt/hgfs/Documents/thesis/android-wmon/core/os/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/libexec/gcc/arm-eabi/4.6.x-google 
total 70053 
-rwxr-xr-x 1 501 dialout 47040814 Oct 3 14:29 cc1 
-rwxr-xr-x 1 501 dialout 50903764 Oct 3 14:29 cc1plus 
-rwxr-xr-x 1 501 dialout 423914 Oct 3 14:29 collect2 
drwxr-xr-x 1 501 dialout  204 Oct 3 14:29 install-tools 
-rwxr-xr-x 1 501 dialout  1090 Oct 3 14:29 libfunction_reordering_plugin.la 
lrwxr-xr-x 1 501 dialout  38 Oct 3 14:29 libfunction_reordering_plugin.so -> libfunction_reordering_plugin.so.0.0.0 
lrwxr-xr-x 1 501 dialout  38 Oct 3 14:29 libfunction_reordering_plugin.so.0 -> libfunction_reordering_plugin.so.0.0.0 
-rwxr-xr-x 1 501 dialout 89427 Oct 3 14:29 libfunction_reordering_plugin.so.0.0.0 
-rwxr-xr-x 1 501 dialout  994 Oct 3 14:29 liblto_plugin.la 
lrwxr-xr-x 1 501 dialout  22 Oct 3 14:29 liblto_plugin.so -> liblto_plugin.so.0.0.0 
lrwxr-xr-x 1 501 dialout  22 Oct 3 14:29 liblto_plugin.so.0 -> liblto_plugin.so.0.0.0 
-rwxr-xr-x 1 501 dialout 238575 Oct 3 14:29 liblto_plugin.so.0.0.0 
-rwxr-xr-x 1 501 dialout 44647203 Oct 3 14:29 lto1 
-rwxr-xr-x 1 501 dialout 114284 Oct 3 14:29 lto-wrapper 

तो, मेरे संकलन लाइन में मैं शामिल "एल/MNT/hgfs /Documents/thesis/android-wmon/core/os/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/libexec/gcc/arm-eabi/4.6.x-google "और फिर" -lliblto_plugin "निर्दिष्ट करें ... लेकिन मुझे अभी भी यह त्रुटि मिल रही है।

arm-eabi-gcc -o test \ 
-I/mnt/hgfs/Documents/thesis/android-wmon/core/os/../android-ndk-r8b-linux/platforms/android-14/arch-arm/usr/include \ 
-I/mnt/hgfs/Documents/thesis/android-wmon/core/os/../ported-deps/jni/libgcrypt/src \ 
-I/mnt/hgfs/Documents/thesis/android-wmon/core/os/../ported-deps/jni/libgpg-error/src \ 
-I/mnt/hgfs/Documents/thesis/android-wmon/core/os/system/core/include \ 
-I/mnt/hgfs/Documents/thesis/android-wmon/core/os/hardware/libhardware/include \ 
-I/mnt/hgfs/Documents/thesis/android-wmon/core/os/hardware/ril/include \ 
-I/mnt/hgfs/Documents/thesis/android-wmon/core/os/dalvik/libnativehelper/include \ 
-I/mnt/hgfs/Documents/thesis/android-wmon/core/os/frameworks/base/include \ 
-I/mnt/hgfs/Documents/thesis/android-wmon/core/os/external/skia/include \ 
-I/mnt/hgfs/Documents/thesis/android-wmon/core/os/out/target/product/generic/obj/include \ 
-I/mnt/hgfs/Documents/thesis/android-wmon/core/os/bionic/libc/arch-arm/include \ 
-I/mnt/hgfs/Documents/thesis/android-wmon/core/os/bionic/libc/include \ 
-I/mnt/hgfs/Documents/thesis/android-wmon/core/os/bionic/libstdc++/include \ 
-I/mnt/hgfs/Documents/thesis/android-wmon/core/os/bionic/libc/kernel/common \ 
-I/mnt/hgfs/Documents/thesis/android-wmon/core/os/bionic/libc/kernel/arch-arm \ 
-I/mnt/hgfs/Documents/thesis/android-wmon/core/os/bionic/libm/include \ 
-I/mnt/hgfs/Documents/thesis/android-wmon/core/os/bionic/libm/include/arch/arm \ 
-I/mnt/hgfs/Documents/thesis/android-wmon/core/os/bionic/libthread_db/include \ 
-I/mnt/hgfs/Documents/thesis/android-wmon/core/os/bionic/libm/arm \ 
-I/mnt/hgfs/Documents/thesis/android-wmon/core/os/bionic/libm \ 
-I/mnt/hgfs/Documents/thesis/android-wmon/core/os/out/target/product/generic/obj/SHARED_LIBRARIES/libm_intermediates \ 
-D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -DANDROID -DSK_RELEASE -DNDEBUG \ 
-include /mnt/hgfs/Documents/thesis/android-wmon/core/os/system/core/include/arch/linux-arm/AndroidConfig.h \ 
-UDEBUG -march=armv5te -mtune=xscale -msoft-float -mthumb-interwork \ 
-fpic -fno-exceptions -ffunction-sections -funwind-tables -fstack-protector -fmessage-length=0 \ 
test.c \ 
-Bdynamic -Wl,-T,/mnt/hgfs/Documents/thesis/android-wmon/core/os/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/arm-eabi/lib/ldscripts/armelf.x \ 
-Wl,-dynamic-linker,/system/bin/linker -Wl,--gc-sections -Wl,-z,nocopyreloc \ 
-Wl,--no-undefined -Wl,-rpath-link=/mnt/hgfs/Documents/thesis/android-wmon/core/os/../android-ndk-r8b-linux/platforms/android-14/arch-arm/usr/lib \ 
-L/mnt/hgfs/Documents/thesis/android-wmon/core/os/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/libexec/gcc/arm-eabi/4.6.x-google \ 
-L/mnt/hgfs/Documents/thesis/android-wmon/core/os/../android-ndk-r8b-linux/platforms/android-14/arch-arm/usr/lib \ 
-nostdlib /mnt/hgfs/Documents/thesis/android-wmon/core/os/../android-ndk-r8b-linux/platforms/android-14/arch-arm/usr/lib/crtend_android.o \ 
/mnt/hgfs/Documents/thesis/android-wmon/core/os/../android-ndk-r8b-linux/platforms/android-14/arch-arm/usr/lib/crtbegin_dynamic.o \ 
/mnt/hgfs/Documents/thesis/android-wmon/core/os/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/lib/gcc/arm-eabi/4.6.x-google/libgcc.a \ 
-lc -lliblto_plugin -lm 
arm-eabi-gcc: fatal error: -fuse-linker-plugin, but liblto_plugin.so not found 

संपादित करें: संकलन के साथ strace चल रहा है, मैं पहुंच देखने के शेयर की गई लाइब्रेरी कि विफल पढ़ने के लिए:

access("/mnt/hgfs/Documents/thesis/android-wmon/core/os/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/../libexec/gcc/arm-eabi/4.6.x-google/liblto_plugin.so", R_OK) = -1 ENOENT (No such file or directory) 
access("/mnt/hgfs/Documents/thesis/android-wmon/core/os/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/../libexec/gcc/liblto_plugin.so", R_OK) = -1 ENOENT (No such file or directory) 
access("/mnt/hgfs/Documents/thesis/android-wmon/core/os/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/../lib/gcc/arm-eabi/4.6.x-google/../../../../arm-eabi/bin/arm-eabi/4.6.x-google/liblto_plugin.so", R_OK) = -1 ENOENT (No such file or directory) 
access("/mnt/hgfs/Documents/thesis/android-wmon/core/os/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/../lib/gcc/arm-eabi/4.6.x-google/../../../../arm-eabi/bin/liblto_plugin.so", R_OK) = -1 ENOENT (No such file or directory) 

यहाँ मेरी पूरी लाइन और त्रुटि है लेकिन दिलचस्प बात यह है कि यह पहला मार्ग वास्तव में मौजूद है, लेकिन यह एक लिंक है:

$ file /mnt/hgfs/Documents/thesis/android-wmon/core/os/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/../libexec/gcc/arm-eabi/4.6.x-google/liblto_plugin.so 
/mnt/hgfs/Documents/thesis/android-wmon/core/os/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/../libexec/gcc/arm-eabi/4.6.x-google/liblto_plugin.so: symbolic link to `liblto_plugin.so.0.0.0' 

वह लिंक भी मान्य है:

$ ls -l /mnt/hgfs/Documents/thesis/android-wmon/core/os/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/../libexec/gcc/arm-eabi/4.6.x-google/ 
total 70053 
-rwxr-xr-x 1 501 dialout 47040814 Oct 3 14:29 cc1 
-rwxr-xr-x 1 501 dialout 50903764 Oct 3 14:29 cc1plus 
-rwxr-xr-x 1 501 dialout 423914 Oct 3 14:29 collect2 
drwxr-xr-x 1 501 dialout  204 Oct 3 14:29 install-tools 
-rwxr-xr-x 1 501 dialout  1090 Oct 3 14:29 libfunction_reordering_plugin.la 
lrwxr-xr-x 1 501 dialout  38 Oct 3 14:29 libfunction_reordering_plugin.so -> libfunction_reordering_plugin.so.0.0.0 
lrwxr-xr-x 1 501 dialout  38 Oct 3 14:29 libfunction_reordering_plugin.so.0 -> libfunction_reordering_plugin.so.0.0.0 
-rwxr-xr-x 1 501 dialout 89427 Oct 3 14:29 libfunction_reordering_plugin.so.0.0.0 
-rwxr-xr-x 1 501 dialout  994 Oct 3 14:29 liblto_plugin.la 
lrwxr-xr-x 1 501 dialout  22 Oct 3 14:29 liblto_plugin.so -> liblto_plugin.so.0.0.0 
lrwxr-xr-x 1 501 dialout  22 Oct 3 14:29 liblto_plugin.so.0 -> liblto_plugin.so.0.0.0 
-rwxr-xr-x 1 501 dialout 238575 Oct 3 14:29 liblto_plugin.so.0.0.0 
-rwxr-xr-x 1 501 dialout 44647203 Oct 3 14:29 lto1 
-rwxr-xr-x 1 501 dialout 114284 Oct 3 14:29 lto-wrapper 

किसी अन्य संपादन का: यदि मैं साझा लाइब्रेरी युक्त निर्देशिका करने के लिए जाने के लिए और liblto_plugin.so.0.0.0 को liblto_plugin.so से लिंक निकाल देते हैं और फिर "cp liblto_plugin.so.0.0.0 liblto_plugin.so" तो यह ठीक से लिंक करता है और मेरा प्रोग्राम संकलित करता है। जब यह फ़ाइल एक लिंक है तो यह क्यों टूटा हुआ है? (क्षमा करें, यहां दो अलग-अलग चीज़ों को संदर्भित करने के लिए "लिंक" का उपयोग करना)।

उत्तर

1

यह पता चला है कि यह मेरी वर्चुअल मशीन के साथ एचजीएफएस में एक साझा निर्देशिका का उपयोग करने में एक बग है। यदि मैं किसी साझा निर्देशिका से कोड को मूल फ़ाइल सिस्टम में खींचता हूं, तो मुझे इन बिल्ड समस्याओं को नहीं मिलता है।

यह मुझे here

+0

पर अच्छा संकेत दिया गया। एक वीएम से इस्तेमाल मेजबान पर साझा फ़ोल्डर पर एंड्रॉइड एनडीके के साथ एक ही मुद्दा था। –

संबंधित मुद्दे