【问题标题】:Defining sem_t in android ndk在 android ndk 中定义 sem_t
【发布时间】:2012-06-08 14:14:13
【问题描述】:

我正在从我的 C++ 库中移植一些代码。

请注意,android 包含库具有 semaphore.h。

我包含了文件,但是在编译时给我一个错误:'sem_t' 没有命名类型。

例如在 linux 中会定义我的信号量:

    sem_t id;

然后会调用:

    sem_init(&id, 0, initialCount);

在我正在使用的 Application.mk 中:

    APP_STL := gnustl_static

提前致谢。

【问题讨论】:

  • semaphore.h(或 types.h 等)是否有 sem_t 的 typedef?如果没有,您将无法使用它。
  • 是的,它存在 semaphore.h 并且它的 sem_t 定义是这样的。 typedef struct { volatile unsigned int count; } sem_t;
  • 你使用的是什么版本的ndk?

标签: android java-native-interface semaphore android-ndk


【解决方案1】:

尝试用-lz -lm -llog -lc -L$(call host-path, $(LOCAL_PATH))/$(TARGET_ARCH_ABI)编译

或者只需将以下行添加到您的android.mk

LOCAL_LDLIBS += -lz -lm -llog -lc -L$(call host-path, $(LOCAL_PATH))/$(TARGET_ARCH_ABI) 

对我有用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-14
    • 2012-07-18
    • 2020-09-16
    • 2019-03-08
    • 2017-01-12
    • 1970-01-01
    相关资源
    最近更新 更多