首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sys/fcntl.h :在为Android交叉编译pcsclite时没有这样的文件?

sys/fcntl.h :在为Android交叉编译pcsclite时没有这样的文件?
EN

Stack Overflow用户
提问于 2012-09-12 08:46:20
回答 1查看 9K关注 0票数 7

所有:我正在制作一个android应用程序,可以与android手机的ccid智能卡读取器通信,我选择了这样的方式:“PCSC-lit-1.8.5+ ccid-1.4.7 + libusb-1.0.3”,它在Ubuntu(pc上的linux操作系统)中运行得非常好。然后我试着把它们移植到android上,在交叉编译时有很多问题。大多数这些问题是Android的仿生库缺少一些标题和功能,比如:

  1. sys/fcntl.h,mQuee.h:没有这样的文件;
  2. pthread_cancel :未定义的参考文献;

现在,在交叉编译用于构建可执行文件"pcscd“的pcsclite时,我得到了以下错误:

sd-daemon.c:35:23:致命错误:sys/fcntl.h:没有这样的文件或目录

Android.mk :

代码语言:javascript
复制
#===================================================
# ******  pcscd ******  
#===================================================

include $(CLEAR_VARS)
LOCAL_PRELINK_MODULE:=false
LOCAL_SRC_FILES:=atrhandler.c \
     debuglog.c \
     dyn_hpux.c \
     dyn_macosx.c \
     dyn_unix.c \
     eventhandler.c \
     hotplug_generic.c \
     ifdwrapper.c \
     pcscdaemon.c \
     powermgt_generic.c \
     prothandler.c \
     readerfactory.c \
     simclist.c \
     strlcat.c \
     sys_unix.c \
     tokenparser.c \
     hotplug_libudev.c \
     hotplug_libusb.c \
     hotplug_linux.c \
     hotplug_macosx.c \
     utils.c \
     winscard.c \
     winscard_msg.c \
     winscard_msg_srv.c \
     winscard_svc.c \
     sd-daemon.c
LOCAL_CFLAGS+= -DHAVE_LIBUSB
LOCAL_C_INCLUDES+=$(LOCAL_PATH)/ $(LOCAL_PATH)/src/ $(HOME)/android-ndk-r8b/samples/includes-libusb1.0.3/ $(LOCAL_PATH)/PCSC/ 
LOCAL_LDFLAGS:=-shared
LOCAL_MODULE:=pcscd
LOCAL_LDLIBS:=-llog $(HOME)/android-ndk-r8b/samples/libs-libusb1.0.3/libusb-1.0.so
include $(BUILD_EXECUTABLE)
EN

回答 1

Stack Overflow用户

发布于 2012-09-12 13:28:58

许多Android标头都不在标准位置。您可以使用以下命令在NDK中搜索丢失文件find . -name fcntl.h的位置。看来include <sys/fcntl.h>需要更改为include <fcntl.h>

Androidp线程库不包括pthread_cancel,请参阅'docs/OVERVIEW.html‘。替换pthread_cancel应该不难。

我不知道如何处理mqueue

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12384353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档