如何 link cpufeatures lib 用于原生 android 库?

How can I link cpufeatures lib for a native android library?

我正在尝试 link android 的 cpu_features 到本地库。
我直接使用 android 的 gcc 编译器作为交叉编译器。 (不是ndk-build)。

我已经包含了 header ($NDK_PATH/sources/android/cpufeatures/cpu-features.h),但我没有看到预构建的 libcpufeatures.a ndk文件夹下任意位置的文件。
我怎样才能建立那个图书馆?或者在哪里可以找到它以便我可以 link 它正确?

您可以只在您的项目中包含源文件 cpu-features.c,或者使用 gcc 手动构建它:

arm-linux-androideabi-gcc -c cpu-features.c -o cpu-features.o --sysroot=$SYSROOT
arm-linux-androideabi-ar rcs libcpufeatures.a cpu-features.o

它不需要任何特殊的编译器标志或额外的定义,但是在链接到它时,您可能需要添加 -ldl 因为它使用 dlopen.