编译GSL库For Android

704 阅读1分钟

正常编译出来的libgsl.so和libcblas.so,会报引用错,如下:

cannot locate symbol "cblas_sdsdot" referenced by "libgsl.so"

按照 Android NDK 构建教程 + 解决方法 操作。

下面是Mac 编译成功的示例:

export PATH=/usr/local/Cellar/gcc/11.1.0_1/bin:$PATH
export NDK=/Users/xushengxing/Library/Android/sdk/ndk/22.0.7026061
export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/darwin-x86_64
export PATH=$TOOLCHAIN/bin:$PATH
export TARGET=armv7a-linux-androideabi
export API=21
export AR=$TOOLCHAIN/bin/llvm-ar
export CC=$TOOLCHAIN/bin/$TARGET$API-clang
export AS=$CC
export CXX=$TOOLCHAIN/bin/$TARGET$API-clang++
export LD=$TOOLCHAIN/bin/ld
export RANLIB=$TOOLCHAIN/bin/llvm-ranlib
export STRIP=$TOOLCHAIN/bin/llvm-strip
./configure --host $TARGET GSL_LDFLAGS="-Lcblas/.libs/ -lgslcblas"

make -j16

注意:此示例中选择的工具适用于 NDK r22 及更高版本。旧版 NDK 可能需要不同的工具。

注意:通常无法在 Windows 上构建 Autoconf 项目

其他: