Android ndk 使用amadillo(blas lapack)和vlfeat库构建ndk 我试图编译使用ARMADILO编写的C++代码,我在CONTRO.HPP中没有注释BLAS LAPACK,也没有在ANDRIDD文件中使用VLFEAT(VL.SO)。

Android ndk 使用amadillo(blas lapack)和vlfeat库构建ndk 我试图编译使用ARMADILO编写的C++代码,我在CONTRO.HPP中没有注释BLAS LAPACK,也没有在ANDRIDD文件中使用VLFEAT(VL.SO)。,android-ndk,lapack,blas,armadillo,vlfeat,Android Ndk,Lapack,Blas,Armadillo,Vlfeat,在Jni文件夹中,我有以下Andriod.mk LOCAL\u路径:=$(调用我的目录) 包括$(清除变量) 产品包装+=\libblas 产品包装+=\liblapack 产品包装+=\libvl 包括$(清除变量) 局部_模+=mjni 本地_SRC_文件+=HelloJNI.cpp 本地_SRC_文件+=featureExtraction.cpp 本地_C_include:=$(本地_路径)/include 本地包含+=$(本地路径)/包含/外部包含/ 本地包含+=$(本地路径)/inc

在Jni文件夹中,我有以下Andriod.mk

LOCAL\u路径:=$(调用我的目录)
包括$(清除变量)
产品包装+=\libblas
产品包装+=\liblapack
产品包装+=\libvl
包括$(清除变量)
局部_模+=mjni
本地_SRC_文件+=HelloJNI.cpp
本地_SRC_文件+=featureExtraction.cpp
本地_C_include:=$(本地_路径)/include
本地包含+=$(本地路径)/包含/外部包含/
本地包含+=$(本地路径)/include/externalInclude/armadillo\u位
#本地共享库:=blas lapack
局部低密度脂蛋白血症+=-llog-ldl
本地_CPP_功能+=异常
本地标志+=-feexceptions

include$(构建共享库)
我也遇到了同样的问题,经过一番挣扎后,我找到了一个解决方案

  • 转到并构建gcc交叉编译器。我是为ndk-8d做的
  • 确保在运行脚本后,您可以看到脚本在其中创建的两个文件夹
    android-ndk-r8d\toolchains\arm-linux-AndroidABI-4.8.0
    android-ndk-r8b\android-ndk-r8d\toolchains\x86-4.8

  • 下载blas lib并更新blas make.in中的以下字段: 而不是

    FORTRAN  = gfortran
    
    FORTRAN = $(yourPath)/android-ndk-r8d/toolchains/x86-4.8.0/prebuilt/linux-x86/bin/i686-linux-android-gfortran
    
  • 运行makefile

  • 添加android.mk并添加以下localflags

    LOCAL_LDFLAGS           := $(OPT) $(PROF) -lblas -llapack -lstdc++ -lgfortran
    
  • 运行ndk构建

    • 我对ndk-8d有一个问题,它缺少GCC4.8的文件,为了解决这个问题,我从ndk-9复制了缺少的文件,它可以正常工作

  • 你找到解决链接问题的方法了吗?