NDK ile derleme .cpp dosyası ile bazı sorunlar yaşıyorum. Statik kütüphane libIrmaMatrix'i bulmakta değil gibi görünüyor. Baska öneri? Ben olduğum zaman olsun hata sert nedenini kullanıyorumAndroid NDK paylaşılan kütüphane derleme sorunları statik kütüphanesi derleyemiyor
[armeabi-v7a-hard] SharedLibrary : libAVL.so
/home/manevbg/Documents/android-sdks/android-ndk-r10/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/iris/sensor-api/static/libIrmaMatrix.a(Connection.o): in function iris::drivers::Connection::~Connection():Connection.cpp(.text+0x39c): error: undefined reference to '__assert_fail'
/home/manevbg/Documents/android-sdks/android-ndk-r10/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/iris/sensor-api/static/libIrmaMatrix.a(Connection.o): in function iris::drivers::Connection::~Connection():Connection.cpp(.text+0x4a8): error: undefined reference to '__assert_fail'
/home/manevbg/Documents/android-sdks/android-ndk-r10/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/iris/sensor-api/static/libIrmaMatrix.a(Connection.o): in function iris::drivers::Connection::~Connection():Connection.cpp(.text+0x5b4): error: undefined reference to '__assert_fail'
/home/manevbg/Documents/android-sdks/android-ndk-r10/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/iris/sensor-api/static/libIrmaMatrix.a(Connection.o): in function iris::drivers::Connection::unregisterSensor(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&):Connection.cpp(.text+0x77c): error: undefined reference to '__assert_fail'
/home/manevbg/Documents/android-sdks/android-ndk-r10/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/iris/sensor-api/static/libIrmaMatrix.a(LogFile.o): in function iris::utilities::LogFile::readEntryAt(long long):LogFile.cpp(.text+0x208): error: undefined reference to 'std::basic_istream<char, std::char_traits<char> >::seekg(std::fpos<__mbstate_t>)'
/home/manevbg/Documents/android-sdks/android-ndk-r10/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/iris/sensor-api/static/libIrmaMatrix.a(DriverManager.o): in function iris::drivers::DriverManager::loadDrivers(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool):DriverManager.cpp(.text+0x1d8c): error: undefined reference to 'boost::filesystem::detail::directory_iterator_construct(boost::filesystem::directory_iterator&, boost::filesystem::path const&, boost::system::error_code*)'
/home/manevbg/Documents/android-sdks/android-ndk-r10/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/iris/sensor-api/static/libIrmaMatrix.a(DriverManager.o): in function iris::drivers::DriverManager::loadDrivers(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool):DriverManager.cpp(.text+0x1dec): error: undefined reference to 'boost::filesystem::detail::directory_iterator_increment(boost::filesystem::directory_iterator&, boost::system::error_code*)'
/home/manevbg/Documents/android-sdks/android-ndk-r10/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/iris/sensor-api/static/libIrmaMatrix.a(DriverManager.o): in function void boost::checked_delete<boost::filesystem::detail::dir_itr_imp>(boost::filesystem::detail::dir_itr_imp*):DriverManager.cpp(.text._ZN5boost14checked_deleteINS_10filesystem6detail11dir_itr_impEEEvPT_+0x1c): error: undefined reference to 'boost::filesystem::detail::dir_itr_close(void*&, void*&)'
/home/manevbg/Documents/android-sdks/android-ndk-r10/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/iris/sensor-api/static/libIrmaMatrix.a(DriverManager.o): in function boost::detail::sp_counted_impl_p<boost::filesystem::detail::dir_itr_imp>::dispose():DriverManager.cpp(.text._ZN5boost6detail17sp_counted_impl_pINS_10filesystem6detail11dir_itr_impEE7disposeEv+0x20): error: undefined reference to 'boost::filesystem::detail::dir_itr_close(void*&, void*&)'
/home/manevbg/Documents/android-sdks/android-ndk-r10/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/iris/sensor-api/static/libIrmaMatrix.a(DriverManager.o): in function boost::filesystem::directory_iterator::directory_iterator(boost::filesystem::path const&):DriverManager.cpp(.text._ZN5boost10filesystem18directory_iteratorC1ERKNS0_4pathE+0xb8): error: undefined reference to 'boost::filesystem::detail::directory_iterator_construct(boost::filesystem::directory_iterator&, boost::filesystem::path const&, boost::system::error_code*)'
/home/manevbg/Documents/android-sdks/android-ndk-r10/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/iris/sensor-api/static/libIrmaMatrix.a(DriverManager.o): in function boost::filesystem::detail::recur_dir_itr_imp::increment(boost::system::error_code*):DriverManager.cpp(.text._ZN5boost10filesystem6detail17recur_dir_itr_imp9incrementEPNS_6system10error_codeE+0x58): error: undefined reference to 'boost::filesystem::directory_entry::m_get_symlink_status(boost::system::error_code*) const'
............
/home/manevbg/Documents/android-sdks/android-ndk-r10/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/iris/sensor-api/static/libIrmaMatrix.a(utf8wchar.o): in function gcc_coding_to_coding(char const*, char const*, char const*, unsigned int, char*, unsigned int):utf8wchar.cpp(.text+0xd8): error: undefined reference to 'iconv'
/home/manevbg/Documents/android-sdks/android-ndk-r10/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/iris/sensor-api/static/libIrmaMatrix.a(utf8wchar.o): in function gcc_coding_to_coding(char const*, char const*, char const*, unsigned int, char*, unsigned int):utf8wchar.cpp(.text+0xe8): error: undefined reference to 'iconv_close'
collect2: ld returned 1 exit status
make: *** [obj/local/armeabi-v7a-hard/libAVL.so] Error 1
:
İşte benim Android.mk
LOCAL_ALLOW_UNDEFINED_SYMBOLS := true
LOCAL_PATH := $(call my-dir)
#IrmaMatrixLib
include $(CLEAR_VARS)
LOCAL_MODULE := irmaMatrix
$(warning $(TARGET_ARCH_ABI))
LOCAL_SRC_FILES := iris/sensor-api/static/libIrmaMatrix.a
LOCAL_LDLIBS = -lz -lm -lc
include $(PREBUILT_STATIC_LIBRARY)
##BoostSystem
include $(CLEAR_VARS)
LOCAL_MODULE := libSystem
LOCAL_SRC_FILES := boost/lib/libboost_system-gcc-mt-1_55.a
include $(PREBUILT_STATIC_LIBRARY)
#libAtomic
include $(CLEAR_VARS)
LOCAL_MODULE := libAtomic
LOCAL_SRC_FILES := boost/lib/libboost_atomic-gcc-mt-1_55.a
include $(PREBUILT_STATIC_LIBRARY)
#libChrono
include $(CLEAR_VARS)
LOCAL_MODULE := libChrono
LOCAL_SRC_FILES := boost/lib/libboost_chrono-gcc-mt-1_55.a
include $(PREBUILT_STATIC_LIBRARY)
#libProgramOptions
include $(CLEAR_VARS)
LOCAL_MODULE := libProgramOptions
LOCAL_SRC_FILES := boost/lib/libboost_program_options-gcc-mt-1_55.a
include $(PREBUILT_STATIC_LIBRARY)
#libThread
include $(CLEAR_VARS)
LOCAL_MODULE := libThread
LOCAL_SRC_FILES := boost/lib/libboost_thread-gcc-mt-1_55.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_CFLAGS += -I$(LOCAL_PATH)/boost/include/boost-1_55
LOCAL_EXPORT_C_INCLUDE_DIRS += -I$(LOCAL_PATH)/boost/include/boost-1_55
LOCAL_EXPORT_C_INCLUDE_DIRS += -I$(LOCAL_PATH)/include/iris/sensor-api
LOCAL_EXPORT_C_INCLUDE_DIRS += -I$(LOCAL_PATH)/prebuild/static/libIrmaMatrix.a
LOCAL_MODULE := AVL
LOCAL_MODULE_FILENAME:= libAVL
LOCAL_SRC_FILES := AVL.cpp
LOCAL_STATIC_LIBRARIES := irmaMatrix
LOCAL_STATIC_LIBRARIES += libSystem
LOCAL_STATIC_LIBRARIES += libAtomic
LOCAL_STATIC_LIBRARIES += libThread
LOCAL_STATIC_LIBRARIES += libChrono
LOCAL_STATIC_LIBRARIES += libProgramOptions
LOCAL_LDLIBS := -lz -lm -lc
include $(BUILD_SHARED_LIBRARY)
Application.mk
APP_ABI := armeabi-v7a-hard
#APP_STL := stlport_static
APP_CFLAGS += -mfloat-abi=hard
APP_STL := gnustl_static
APP_MODULES := AVL
APP_PLATFORM := android-18
APP_CPPFLAGS := -frtti -fexceptions
takiben hataları Sadece armeabi-v7a kullanarak m: VFP kayıt argümanlarını kullanır, çıktı
Ben 1 hata telafi etti: /home/manevbg/Documents/android-sdks/android-ndk-r10/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/ .. /lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi-v7a-hard/objs/AVL /AVL.o: işlev içinde device_scan: jni/AVL.cpp: 255: hata: 'iris :: drivers için tanımlanmamış başvuru :: DriverManager :: getInstance()' | statik jint device_scan (JNIEnv * env, jobject öğesi, jint asdf) { \t DriverManager & dm = DriverManager :: getInstance(); \t 0; } | Nesne bulunamadığı gibi görünüyor ama .a lib derlenmiş olması gerektiği gibi olmalıdır ... –
Statik yöntemin tanımı gibi görünüyor iris :: drivers :: DriverManager :: getInstance() 'bulunamadı. Lütfen bu işlevin uygulandığı yeri kontrol edin ve derleme sırasında .cpp dosyasını düzgün bir şekilde ekleyin. –
Sorun şu ki, kaynaklarla (libIrmaMatrix.a) ancak .cpp dosyaları değil, sınıfları ve statik kitaplık başlık dosyalarına sahip olduğumu ve ne yapacağımı bilmiyorum .. –