【问题标题】:Poco C++ for Android on Linux适用于 Linux 上 Android 的 Poco C++
【发布时间】:2013-11-05 14:40:07
【问题描述】:

我在 Qt 框架中有一个项目,我想在其中使用 Poco C++ HTML 服务器实现。我已经准备好代码,并且能够为 Linux 桌面编译和运行它,它可以像我期望的那样工作。 我也想为 Android 编译它,但我的问题从这里开始。我已完成以下操作以使其适用于 Android: 由于 Qt 中的项目是为 arm (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

运行配置、制作和安装。 我已经设置了 LD_LIBRARY_PATH,现在希望 Poco 可以在我的 Qt 项目中使用。 当我编译我的 Qt 项目时,我收到以下警告/错误:
“在搜索 PocoFoundation 时跳过不兼容的 libPocoFoundation.so”
“错误:找不到 -lPocoFoundation”
所以我想我没有编译 Poco 库,以便在 Qt 中使用它。但是,我不知道如何从这里开始。
谁能告诉我我做错了什么???

问候,

【问题讨论】:

  • LD_LIBRARY_PATH 在构建期间没有帮助 - 这是一个运行时设置。试试LIBS += -L/path/to/your poco-libs -lPocoFoundation
  • 是的,你当然是对的 :) 我已经按照你的描述设置了 LIBS,我可以从警告消息中看到它位于正确的位置。
  • 没有人知道如何解决这个问题?总结一下:我的 .pro 文件中有 LIBS += -L/path/to/pocolibs -lPocoFoundation 。我检查了我的系统上安装了正确的 gcc/g++ 版本。在 Qt 中,我使用以下工具包:Android for arm (GCC 4.8, Qt 5.1.1)。不知道我在这里错过了什么???

标签: android c++ linux qt poco-libraries


【解决方案1】:

问题是我为 Linux 和 Android 编译了 Poco。首先,我为 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

由于我没有对 Linux 配置执行 make clean,因此 Android 配置的 make install 找到(并复制)了已编译的库以及 Linux 和 Android。

不幸的是 Qt 然后链接到了错误的库,这解释了我收到的错误消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    相关资源
    最近更新 更多