2016-03-11 6 views
7

मैं एंड्रॉयड NDK-11 के साथ एक पुस्तकालय बनाने की कोशिश कर रहा हूँ और मैं एक लिंकर त्रुटि हो रही है:NDK 11 लिंकर त्रुटियों के रूप में चेतावनी इलाज है

arm-linux-androideabi/bin/ld: error: treating warnings as errors

मैं यह त्रुटि अगर मैं नहीं मिलता है ndk-r10e का उपयोग करें।

वी = 1 के साथ ndk-build चल रहा है, मुझे लगता है कि -Wl,--fatal-warnings लिंकर को पास किया जा रहा है। मैंने अपने एंड्रॉइड.एमके फ़ाइल में LOCAL_LDFLAGS:=-Wl,--no-fatal-warnings जोड़ने का प्रयास किया है, और मैं लिंकर आउटपुट में देख सकता हूं कि वास्तव में यह लिंकर को पास किया जा रहा है, लेकिन यह -Wl,--fatal-warnings से पहले पारित किया गया है, इसलिए इसे अनदेखा किया जा रहा है।

चेतावनियां किसी तृतीय पक्ष लाइब्रेरी से आ रही हैं, इसलिए मैं चेतावनियों को ठीक करने के लिए इसे फिर से संकलित नहीं कर सकता (वे सभी 'स्थानान्तरण खंड को छोड़कर अनुभाग' चेतावनियों को संदर्भित करते हैं)। मैंने हमेशा इन चेतावनियों को देखा है और कभी भी कोई समस्या नहीं है।

क्या किसी को पता है कि त्रुटियों के रूप में चेतावनियों का इलाज करने के लिए ndk-11 लिंकर नहीं बताएं?

उत्तर

12

मुझे यह पता चला क्योंकि मैं इसे लिख रहा था, इसलिए मैंने सोचा कि मैं समाधान साझा करूंगा।

<NDK_ROOT>/build/core में .mk फ़ाइलों का एक समूह है जिसका उपयोग ndk-build चलाते समय किया जाता है। build-binary.mk के अंदर, वे चर के लिए कुछ नए (अनियंत्रित) चेक हैं जिन्हें आप परिभाषित कर सकते हैं।

# We enable fatal linker warnings by default. 
# If LOCAL_DISABLE_FATAL_LINKER_WARNINGS is true, we don't enable this check. 
ifneq ($(LOCAL_DISABLE_FATAL_LINKER_WARNINGS),true) 
    LOCAL_LDFLAGS += -Wl,--fatal-warnings 
endif 

बनाया त्रुटि चले जाओ मेरी .mk फाइल करने के लिए LOCAL_DISABLE_FATAL_LINKER_WARNINGS=true जोड़ना: इस विशेष रूप से एक के लिए, वहाँ निम्नलिखित ब्लॉक है।

इन फ़ाइलों में परिभाषित अन्य चीजों के बहुत सारे हैं, तो आप अजीब निर्माण त्रुटियों अचानक मिल रहे हैं, अगर कुछ नया सक्षम किया गया है को देखने के लिए वहाँ में एक बार देख ले।

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