1

这是一个奇怪的设置。我用 GCC 4.7 编译了一个自定义 NDK(用于 Debian armhf chroot 主机)。在测试中,它可以完美地在 Android 上编译和运行常规的 c 和 c++ 二进制文件。尝试使用 C++ 编译测试共享库时:

arm-linux-androideabi-g++ -fPIC -shared test.cpp -lstdc++ -o test.so

我收到许多链接器错误_staticinitialization_destruction并且_dso_handle未被引用。

我在目录下的 lib 文件夹中都有libstdc++.a并且可用。到底是怎么回事?几乎没有任何关于 Android C++ 独立编译的信息。libstdc++.soarm-linux-androideabi

编辑 GNU STL 的 iostream 部分似乎未定义 __dso_handle。我从 2005 年的 Linux 帖子中找到了答案。似乎在 2012 年仍然是一个问题:O 大声笑。

4

0 回答 0