Obecnie utknąłem na problemie z kompilacją na Androida dla mojej aplikacji.Plik nagłówka nie został znaleziony tylko w określonej jednostce tłumaczeniowej
otrzymuję następujący błąd podczas kompilacji mojego natywną biblioteką z ndk-build
:
BackgroundDisplayConfiguration.h:12:23: fatal error: glm/glm.hpp:
No such file or directory
#include <glm/glm.hpp>
^
Co mnie zastanawia to to, że nie podano ścieżkę dla tego nagłówka biblioteki tylko w moim Android.mk
następujący sposób:
LOCAL_CPPFLAGS += -I../../glm/include
Ta ścieżka istnieje i jest poprawna, ale ponadto jeśli zepsuję tę ścieżkę, otrzymam ten sam błąd w innych plikach, które zawierają glm.hpp
. Gdy ścieżka jest prawidłowa, tylko ten plik powoduje błąd i nie rozumiem, dlaczego. Jakieś wskazówki?
EDIT: Okay, to jeszcze bardziej zagadkowe. Opcja include pojawia się w każdym poleceniu kompilatora dla każdego pliku, ale nie w poleceniu kompilatora dla dużego wrappera generowanego przez swig (który wyprowadza mój library_native_wrap.o
), i to tam generuje błąd ... Cóż, to przynajmniej wyjaśnia zaobserwowane zachowanie.
nie wiem o Android NDK, ale może to tylko używa 'LOCAL_CPPFLAGS' dla tylko przerób, a nie dodać flagi do flag kompilatora? Czy próbowałeś ustawić np. "LOCAL_CXXFLAGS"? –
@JoachimPileborg Cóż, [dokumentacja dla pliku makefile dla Androida] (http://www.kandroid.org/ndk/docs/ANDROID-MK.html) stwierdza, że 'LOCAL_CXXFLAGS' jest aliasem dla' LOCAL_CPPFLAGS' tak czy inaczej, a nawet więcej, że będzie to przestarzałe. Naprawdę zastanawia mnie fakt, że dzieje się to tylko na konkretnym pliku i wydaje się działać dla innych ... – JBL
Tylko ze względu na próbę, dodałem opcję include zarówno do "LOCAL_CXXFLAGS', jak i do' LOCAL_CFLAGS' i nie naprawiam problem. – JBL