【问题标题】:Link error on AndroidAndroid上的链接错误
【发布时间】:2012-08-31 11:55:09
【问题描述】:

在 android 上编译本机代码时遇到问题:

CMakeFiles/test_v_job.dir/test_v_job.cpp.o:test_v_job.cpp:function
boost::detail::signal_handler::~signal_handler(): error: undefined
reference to 'sigaltstack'
CMakeFiles/test_v_job.dir/test_v_job.cpp.o:test_v_job.cpp:function
boost::detail::signal_handler::signal_handler(bool, int, bool, char*):
error: undefined reference to 'sigaltstack'
CMakeFiles/test_v_job.dir/test_v_job.cpp.o:test_v_job.cpp:function
boost::detail::signal_handler::signal_handler(bool, int, bool, char*):
error: undefined reference to 'sigaltstack' collect2: ld returned 1
exit status

signal.h 头文件在目录:C:\AndroidSDKS\android-ndk-r7-crystax\platforms\android-9\arch-arm\ usr\包括

必须链接什么?

【问题讨论】:

  • 我已尝试链接 -lboost_signals。它没有解决我的问题。我想我需要链接包含“sigaltstack”的库。在 linux 上是 libc。 android 上的“sigaltstack”在哪里?
  • 你确定它是 libboost_signals 的 Android 版本吗? Windows 或 Linux 版本与 Android NDK 不兼容。
  • 为了在 ANDROID NDK 下构建提升,我使用 github.com/MysticTreeGames/Boost-for-Android

标签: android c++ linker android-ndk


【解决方案1】:

这个错误可能是android-ndk的旧平台引起的,它应该至少用android-9或更高版本编译

它与 boost 库无关

例如,如果您使用 ndk-build,您应该将这些行添加到 Application.mk:

APP_ABI := armeabi APP_PLATFORM := android-9

【讨论】:

    【解决方案2】:

    要在 ANDROID NDK 下构建提升,我使用 github.com/MysticTreeGames/Boost-for-Android – e.proydakov

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-16
      • 2019-12-17
      • 1970-01-01
      • 2018-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-27
      相关资源
      最近更新 更多