0 / 0 / 0
Регистрация: 22.02.2013
Сообщений: 17
1

Подключение lib-файла FFTW для сборки проекта для android из OSX

21.08.2015, 18:40. Показов 2122. Ответов 12
Метки нет (Все метки)

Привет всем!

Я только новичек в QT, не судите строго)
Собираю проект под Android с OSX. Использую стороннюю библиотеку FFTW.
Библиотека содержит lib-файл. Его нужно подключить к проекту. Подключил-не работает.
Если что, тестовы простые проекты собираются и работают на Android.
Мое приложение с lib-файлом собирается в виде Desktop версии на mac (но не на android).

При сборке на Android QT выдает ошибки:

/Users/way/file.cpp:9: error: undefined reference to 'fftw_plan_with_nthreads'
/Users/way/file.cpp:42: error: undefined reference to 'fftw_free'
...


Всего 25 таких ошибок...
Вроде он не находит эти функции( В чем проблема????
Я понимаю что проект mac->android это, в принцепе, уже проблема)), но все же, как это вылечить?

Вот часть pro-файла:
C++
1
2
3
4
5
6
7
INCLUDEPATH += $$PWD/FFTW
DEPENDPATH += $$PWD/FFTW
 
//win32: LIBS += -L$$PWD/FFTW/libs/ -llibfftw3-3
//unix: LIBS += -L$$/usr/lib/ -lfftw3_threads -lfftw3
//unix: LIBS += -L$$PWD/sw/lib/ -lfftw3_threads -lfftw3
//LIBS += -L$$PWD/sw/lib/ -lfftw3_threads -lfftw3 -lm -lstdc++
Добавлено через 18 минут
Или нужно как-то с 0 сбилдить lib-файл???
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.08.2015, 18:40
Ответы с готовыми решениями:

Защита файла-сборки lib
Добрый день, если включить паранойю и представить, что вы потратили месяц на библиотеку zip.lib...

Как установить Qt 5.1 alpha для того чтоб в Qt Creator появился шаблон проекта для Android?
Как собственно можно использовать qt для андройда? Вроде бы с версии 5.1 уже Necessitas не нужен?

Разработать make файл для сборки проекта из двух модулей
Здравствуйте. Помогите с заданием, уже началась сессия. Задание: Разработать make файл для сборки...

Разработать make файл для сборки проекта из двух модулей
Здравствуйте всем. Необходимо сделать задание, сам долбаюсь уже день не получается, помогите...

12
1441 / 1322 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
21.08.2015, 19:20 2
А FFTW под Android собрана?
0
0 / 0 / 0
Регистрация: 22.02.2013
Сообщений: 17
21.08.2015, 20:44  [ТС] 3
Dmitriy_M нет( просто скачал и подключил. На windows и osx работает. Подскажите пожалуйста как собрать под андроид?
0
1441 / 1322 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
21.08.2015, 22:01 4
Как понимаю за основу можно взять build.sh, подправить тулчайн и в configure нужно еще передать --enable-single --enable-neon.
0
0 / 0 / 0
Регистрация: 22.02.2013
Сообщений: 17
21.08.2015, 22:36  [ТС] 5
Попробовал вот это: https://github.com/hekai/fftw_android
Вроде все собрано) Проект не собрался(Ошибки вроде как те же ) Теперь на мак тоже не билдится, логично)
QT выдал:
General Messages: Warnings while parsing QML type information of /Users/Alexey/Qt5.5.0/5.5/clang_64/qml:
<dump of /Users/Alexey/Qt5.5.0/5.5/clang_64/qml>:1:24: Reading only version 1.1 parts.
<dump of /Users/Alexey/Qt5.5.0/5.5/clang_64/qml>:10:5: Expected only Component and ModuleApi object definitions.


Issues: :-1: error: collect2: error: ld returned 1 exit status

Compile output:
.....
Tool.o:Tool.cpp:function Tool::Tool(QObject*): error: undefined reference to 'fftw_plan_with_nthreads'
collect2: error: ld returned 1 exit status
make: *** [libAPP.so] Error 1
22:28:49: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project APP (kit: Android for armeabi-v7a (GCC 4.9, Qt 5.5.0))
When executing step "Make"
22:28:49: Elapsed time: 00:09.
0
1441 / 1322 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
21.08.2015, 22:57 6
А где линковка с fftw?
0
0 / 0 / 0
Регистрация: 22.02.2013
Сообщений: 17
21.08.2015, 23:14  [ТС] 7
Это всё что есть в окне Compile output:
23:05:36: Running steps for project APP...
23:05:36: Configuration unchanged, skipping qmake step.
23:05:36: Starting: "/usr/bin/make"
/Users/Alexey/Documents/Android/android-ndk-r10e/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-g++ --sysroot=/Users/Alexey/Documents/Android/android-ndk-r10e/platforms/android-9/arch-arm/ -Wl,-soname,libAPP.so -Wl,-rpath=/Users/Alexey/Qt5.5.0/5.5/android_armv7/lib -Wl,--no-undefined -Wl,-z,noexecstack -shared -o libAPP.so main.o MainWindow.o Tool.o WorkerThread.o ImageUtils.o qrc_MainResources.o moc_MainWindow.o moc_Tool.o moc_WorkerThread.o -L/Users/Alexey/Documents/Android/android-ndk-r10e/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a -L/Users/Alexey/Documents/Android/android-ndk-r10e/platforms/android-9/arch-arm//usr/lib -L/Users/Alexey/Desktop/srcQTAPP/FFTW/lib/ -lfftw3f_threads -lfftw3 -lm -lstdc++ -L/Users/Alexey/Qt5.5.0/5.5/android_armv7/lib -lQt5Widgets -L/opt/android/ndk/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a -L/opt/android/ndk/platforms/android-9/arch-arm//usr/lib -lQt5Gui -lQt5Core -lGLESv2 -lgnustl_shared -llog -lz -lm -ldl -lc -lgcc
../srcQTAPP/Tool.cpp:9: error: undefined reference to 'fftw_plan_with_nthreads'
collect2: error: ld returned 1 exit status
make: *** [libAPP.so] Error 1
23:05:37: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project APP (kit: Android for armeabi-v7a (GCC 4.9, Qt 5.5.0))
When executing step "Make"

23:05:37: Elapsed time: 00:00.

Добавлено через 3 минуты
В Issuses:
/Users/Alexey/Desktop/srcQTAPP/Tool.cpp:9: error: undefined reference to 'fftw_plan_with_nthreads'
:-1: error: collect2: error: ld returned 1 exit status

General Messages:
Warnings while parsing QML type information of /Users/Alexey/Qt5.5.0/5.5/clang_64/qml:
<dump of /Users/Alexey/Qt5.5.0/5.5/clang_64/qml>:1:24: Reading only version 1.1 parts.
<dump of /Users/Alexey/Qt5.5.0/5.5/clang_64/qml>:10:5: Expected only Component and ModuleApi object definitions.

Добавлено через 2 минуты
Постойте, а она должна линковаться прямо в моем проекте?
*.a - это я так понял тоже самое что и lib только для qt(.a лежат в у меня как lib файлы в папке lib ).
0
1441 / 1322 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
21.08.2015, 23:15 8
А в собранной либе fftw_plan_with_nthreads экспортируется?
0
0 / 0 / 0
Регистрация: 22.02.2013
Сообщений: 17
21.08.2015, 23:20  [ТС] 9
Хммм( Не знаю( Как узнать???

Добавлено через 1 минуту
В проекте я курсор навожу на методы и они подсвечиваются нормально, типа все есть в библиотеке.
0
1441 / 1322 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
21.08.2015, 23:22 10
objdump?
Пути к собранной либе правильно указаны?
0
0 / 0 / 0
Регистрация: 22.02.2013
Сообщений: 17
21.08.2015, 23:25  [ТС] 11
Я вот этого всего не писал, не знаю куда вставить это в проекте чтобы заработало:
Код
#!/bin/sh
# build.sh
# Compiles fftw3 for Android
# Make sure you have NDK_ROOT defined in .bashrc or .bash_profile
 
INSTALL_DIR="`pwd`/jni/fftw3"
SRC_DIR="`pwd`/fftw-3.3.3"
 
cd $SRC_DIR
 
export
PATH="$NDK_ROOT/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/bin/:$PATH"
export SYS_ROOT="$NDK_ROOT/platforms/android-8/arch-arm/"
export CC="arm-linux-androideabi-gcc --sysroot=$SYS_ROOT"
export LD="arm-linux-androideabi-ld"
export AR="arm-linux-androideabi-ar"
export RANLIB="arm-linux-androideabi-ranlib"
export STRIP="arm-linux-androideabi-strip"
 
mkdir -p $INSTALL_DIR
./configure --host=arm-eabi  --prefix=$INSTALL_DIR LIBS="-lc -lgcc" --enable-float
 
make
make install
 
exit 0
Это взял с одного сайта, где якобы компилируют библтотеку под android;
http://www.mobibrw.com/?p=1214

Добавлено через 1 минуту
Пути верно. На OSX собиралось
0
1441 / 1322 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
21.08.2015, 23:34 12
Alerr, как можно программировать не понимая того, что приведено выше?
Там написано, что готовая собранная либа лежит `pwd`/jni/fftw3.
0
0 / 0 / 0
Регистрация: 22.02.2013
Сообщений: 17
22.08.2015, 00:33  [ТС] 13
Да это я понимаю, QT для меня лес пока(

Добавлено через 5 минут
Вообщем-то взял я готовую либу из jni, (https://github.com/hekai/fftw_android). Пересобрал проект заново.
Все равно не видит функций(

Добавлено через 36 минут
Почти разобрался, вот это "fftw_plan_with_nthreads"(как вы намекали) отсутствует в либах. выкинул методы из этой части(fftw_plan_with_nthreads) и LIBS += -L$$PWD/FFTW/lib/ -lfftw3 -lm -lstdc++, проект собрался!!!)

Добавлено через 6 минут
Вот этого -lfftw3_threads нет( Как его собрать???? Можете статьей поделиться?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.08.2015, 00:33

Выбор решения для проекта! Приложение для Windows + приложение для Android или Web приложение?
Здравствуйте! Один мой знакомый, владелец мебельной фирмы, обратился ко мне с серьезным...

Подключение lib файла
Здравствуйте, Подключаю lib файл к проекту: #pragma comment(lib, &quot;ws2_32.lib&quot;) VS2017...

подключение файла LIB
Здравствуйте, Подскажите, пожалуйста, как подключить файл *.lib к проекту на си-шарпе. Спасибо...

Получение хеша бинарного файла сборки для выполняемого apk-файла
Cкажите, пожалуйста, как можно обратиться, получить доступ и рассчитать хеш бинарного файла одной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru