Добрый день!
Никак не получается подключить библиотеку к проекту под android. Подскажите, если кто сталкивался с этим.
Есть проект который хочется пощупать
https://github.com/dept2/CuteLoggerЕго .pro:
QT -= gui
TARGET = Logger
TEMPLATE = lib
DEFINES += CUTELOGGER_LIBRARY
INCLUDEPATH += ./include
SOURCES += src/Logger.cpp \
src/AbstractAppender.cpp \
src/AbstractStringAppender.cpp \
src/ConsoleAppender.cpp \
src/FileAppender.cpp \
src/RollingFileAppender.cpp
HEADERS += include/Logger.h \
include/CuteLogger_global.h \
include/AbstractAppender.h \
include/AbstractStringAppender.h \
include/ConsoleAppender.h \
include/FileAppender.h \
include/RollingFileAppender.h
win32 {
SOURCES += src/OutputDebugAppender.cpp
HEADERS += include/OutputDebugAppender.h
}
android {
SOURCES += src/AndroidAppender.cpp
HEADERS += include/AndroidAppender.h
}
symbian {
MMP_RULES += EXPORTUNFROZEN
TARGET.UID3 = 0xE8FB3D8D
TARGET.CAPABILITY =
TARGET.EPOCALLOWDLLDATA = 1
addFiles.sources = CuteLogger.dll
addFiles.path = !:/sys/bin
DEPLOYMENT += addFiles
}
unix:!symbian {
maemo5 {
target.path = /opt/usr/lib
} else {
target.path = /usr/lib
}
INSTALLS += target
}
Собираю (Ctrl+B). В каталоге сборки:
libLogger.so
libLogger.so.1
libLogger.so.1.0
libLogger.so.1.0.0
В корне своего приложения создал каталоги libs/Logger и include. Скопировал в libs/Logger "libLogger.so.1.0.0" и переименовал в "libLogger.so".
В каталоге include создал папку CuteLogger и скопировал туда include из проекта CuteLogger.
В своем .pro файле пишу это:
INCLUDEPATH += ./include/CuteLogger/include \
./libs/Logger
LIBS += -L libs/Logger -lLogger
В main.cpp подключил:
#include <Logger.h>
#include <ConsoleAppender.h>
#include <FileAppender.h>
...
// код использования
В итоге все работает как надо.
Пробую под android. Нагуглил, что для этого надо использовать ANDROID_EXTRA_LIBS.
Поэтому .pro файл изменил так:
android {
QT += androidextras
ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android
ANDROID_EXTRA_LIBS += $$PWD/android/libs/armeabi-v7a/libLogger.so
OTHER_FILES += android/AndroidManifest.xml
}
INCLUDEPATH += ./include/CuteLogger/include \
# ./libs/Logger
#LIBS += -L libs/Logger -lLogger
И скопировал в $$PWD/android/libs/armeabi-v7a либу "libLogger.so".
Но увы, чего-то не хватает, а чего, не пойму. Выдает ошибки вроде этой:
undefined reference to 'ConsoleAppender::ConsoleAppender()'
Как правильно подключить библиотеку к приложению под android?