Poco C++ для Android в Linux

У меня есть проект в среде Qt, где я хотел бы использовать реализацию HTML-сервера Poco C++. У меня есть код, и я могу скомпилировать и запустить его для рабочего стола Linux, где он работает так, как я и ожидал. Я хотел бы скомпилировать его и для Android, но здесь начинается моя проблема. Я сделал следующее, чтобы заставить его работать на Android: поскольку проект в Qt скомпилирован для руки (GCC 4.8), я создал набор инструментов для компиляции Poco:
<NDK-R9 dir>/build/tools/make-standalone-toolchain.sh --platform=android-9 --install-dir=$HOME/my-android-toolchain --toolchain=arm-linux-androideabi-4.8

Ran настроить, сделать и сделать установить. Я настроил LD_LIBRARY_PATH и теперь ожидаю, что Poco будет готов к использованию в моем проекте Qt. Когда я компилирую свой проект Qt, я получаю следующие предупреждения/ошибки:
"пропуск несовместимого libPocoFoundation.so при поиске PocoFoundation"
"ошибка: невозможно найти -lPocoFoundation "
Итак, я думаю, что не скомпилировал библиотеку Poco, как должен, чтобы использовать ее в Qt. Однако я не знаю, как действовать дальше.
Может ли кто-нибудь сказать мне, что я делаю неправильно???

С уважением,


person Jon Helt-Hansen    schedule 05.11.2013    source источник
comment
LD_LIBRARY_PATH не помогает во время сборки — это параметр времени выполнения. Попробуйте LIBS += -L/path/to/your poco-libs -lPocoFoundation   -  person Frank Osterfeld    schedule 05.11.2013
comment
Да, конечно, вы правы в этом :) Я уже установил LIBS, как вы описываете, и я вижу из предупреждающего сообщения, что он выглядит в правильном месте.   -  person Jon Helt-Hansen    schedule 05.11.2013
comment
Ни у кого нет идей, как это исправить? Подводя итог: у меня есть LIBS += -L/path/to/pocolibs -lPocoFoundation в моем файле .pro. Я проверил, что в моей системе установлена ​​правильная версия gcc/g++. В Qt я использую следующий комплект: Android для руки (GCC 4.8, Qt 5.1.1). Не уверен, что мне здесь не хватает???   -  person Jon Helt-Hansen    schedule 12.11.2013


Ответы (1)


Проблема в том, что я скомпилировал Poco и для Linux, и для Android. Во-первых, я скомпилировал для Linux:

./configure --config=linux --no-tests --no-samples
make -s -j4
sudo make install

Затем я повторил это для Android:

./configure --config=android --no-tests --no-samples --prefix=/usr/local/android
make -s -j4
sudo make install

Поскольку я не выполнил make clean after для конфигурации Linux, make install для конфигурации Android нашел (и скопировал) скомпилированные библиотеки, а также Linux и Android.

К сожалению, Qt затем связался с неправильными библиотеками, что объясняет сообщение об ошибке, которое я получил.

person Jon Helt-Hansen    schedule 13.11.2013