मैं वर्तमान में अपने ऐप के लिए एंड्रॉइड पर एक संकलन समस्या पर अटक गया हूं।शीर्षलेख फ़ाइल केवल विशिष्ट अनुवाद इकाई में नहीं मिली
मैं ndk-build
के साथ मेरे देशी पुस्तकालय के संकलन के दौरान निम्नलिखित त्रुटि मिलती है:
BackgroundDisplayConfiguration.h:12:23: fatal error: glm/glm.hpp:
No such file or directory
#include <glm/glm.hpp>
^
मुझे क्या पहेली है कि मैं इस शीर्ष लेख केवल मेरे Android.mk
निम्नलिखित तरीके से पुस्तकालय के लिए एक पथ निर्दिष्ट किया है
LOCAL_CPPFLAGS += -I../../glm/include
और यह पथ मौजूद है और यह सही है, लेकिन इसके अलावा यदि मैं इस पथ को गड़बड़ करता हूं तो मुझे अन्य फ़ाइलों में एक ही त्रुटि मिलती है जिसमें glm.hpp
शामिल है। जब पथ सही होता है, केवल यह फ़ाइल एक त्रुटि उत्पन्न करती है, और मुझे समझ में नहीं आता क्यों। कोई संकेतक?
संपादित करें: ठीक है, यह और भी परेशान है। प्रत्येक फ़ाइल के लिए प्रत्येक कंपाइलर कमांड में विकल्प शामिल होता है, लेकिन स्विग द्वारा उत्पन्न बड़े रैपर के लिए कंपाइलर कमांड पर नहीं (जो मेरे library_native_wrap.o
आउटपुट करता है), और यही वह जगह है जहां यह त्रुटि उत्पन्न करता है ... अच्छा, यह कम से कम मनाया जाता है व्यवहार।
मैं एंड्रॉयड NDK के बारे में पता नहीं है, लेकिन शायद यह केवल 'केवल preprocessing के लिए LOCAL_CPPFLAGS' का उपयोग करता है, और नहीं है कंपाइलर झंडे में झंडे जोड़ें? क्या आपने सेटिंग सेट करने का प्रयास किया है 'LOCAL_CXXFLAGS'? –
@ जोचिमपिलबोर्ग वेल, [एंड्रॉइड मेकफ़ाइल के लिए प्रलेखन] (http://www.kandroid.org/ndk/docs/ANDROID-MK.html) बताता है कि 'LOCAL_CXXFLAGS'' LOCAL_CPPFLAGS' के लिए उपनाम है, और यहां तक कि और अधिक है कि इसे बहिष्कृत किया जाना चाहिए। वास्तव में मुझे क्या पहेली है कि यह केवल एक विशिष्ट फ़ाइल पर होता है, और दूसरों के लिए काम करता है ... – JBL
बस कोशिश करने के लिए, मैंने 'LOCAL_CXXFLAGS' और' LOCAL_CFLAGS' दोनों में अपना विकल्प शामिल किया और न ही इसे ठीक किया मुसीबत। – JBL