gpt4 book ai didi

android - 系统/fcntl.h : no such file while cross compiling pcsclite for Android?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:52:35 25 4
gpt4 key购买 nike

全部: 我正在制作一个 android 应用程序,可以与来自 android 移动设备的 ccid 智能卡读卡器通信, 我选择了这种方式:“pcsc-lite-1.8.5 + ccid-1.4.7 + libusb-1.0.3”,它在 Ubuntu(PC 上的 linux 操作系统)中运行得很好。 然后我尝试将它们移植到android,交叉编译时有很多问题。这些问题大部分是 Android 的 Bionic 库缺少一些头文件和函数,例如:

  1. sys/fcntl.h , mqueue.h : 没有那个文件;

  2. pthread_cancel: undefined reference ;

现在,当我交叉编译 pcsclite 以构建可执行文件“pcscd”时,我得到了这个错误:

sd-daemon.c:35:23: fatal error:sys/fcntl.h:No such file or directory

Android.mk :

#===================================================
# ****** 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)

最佳答案

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

Android pthread 库不包含pthread_cancel请参阅“文档/OVERVIEW.html”。替换pthread_cancel应该不难.

我不确定如何处理 mqueue .

关于android - 系统/fcntl.h : no such file while cross compiling pcsclite for Android?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12384353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com