我通过选择任意版本的库并将其编译为静态库来解决。我将文件夹中的所有文件放在一个名为uuid
. 然后我CMakeLists.txt
在外部目录中添加了以下内容:
cmake_minimum_required(VERSION 3.8)
project(uuid)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set (SOURCE_FILES
uuid/clear.c
uuid/compare.c
uuid/copy.c
uuid/gen_uuid.c
uuid/isnull.c
uuid/pack.c
uuid/parse.c
uuid/unpack.c
uuid/unparse.c
uuid/uuid_time.c
)
add_definitions(
-DHAVE_INTTYPES_H
-DHAVE_UNISTD_H
-DHAVE_ERRNO_H
-DHAVE_NETINET_IN_H
-DHAVE_SYS_IOCTL_H
-DHAVE_SYS_MMAN_H
-DHAVE_SYS_MOUNT_H
-DHAVE_SYS_PRCTL_H
-DHAVE_SYS_RESOURCE_H
-DHAVE_SYS_SELECT_H
-DHAVE_SYS_STAT_H
-DHAVE_SYS_TYPES_H
-DHAVE_STDLIB_H
-DHAVE_STRDUP
-DHAVE_MMAP
-DHAVE_UTIME_H
-DHAVE_GETPAGESIZE
-DHAVE_LSEEK64
-DHAVE_LSEEK64_PROTOTYPE
-DHAVE_EXT2_IOCTLS
-DHAVE_LINUX_FD_H
-DHAVE_TYPE_SSIZE_T
-DHAVE_SYS_TIME_H
-DHAVE_SYS_PARAM_H
-DHAVE_SYSCONF
)
add_library(uuid STATIC ${SOURCE_FILES})
install(TARGETS uuid DESTINATION lib)
最后,我确保以 NDK 为目标,向 cmake 发出以下调用:
mkdir -p build-android-arm
cd build-android-arm
cmake ANDROID_ARGS="-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_TOOLCHAIN_FILE=/opt/android-ndk/build/cmake/android.toolchain.cmake \
-DANDROID_NDK=/opt/android-ndk \
-DANDROID_NATIVE_API_LEVEL=23 \
-DANDROID_TOOLCHAIN=clang" \
-DANDROID_ABI=armeabi-v7a ..