首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试从源运行MLPack时出错

尝试从源运行MLPack时出错
EN

Stack Overflow用户
提问于 2022-02-24 03:19:57
回答 1查看 78关注 0票数 1

OS:Linux

编译:NDK-构建

当我试图从源代码编译mlPack时,我遇到了错误。当我通过安装mlPack及其依赖项(armadilloensmallenboost)来运行时,代码工作得很好。但是,我正在尝试创建一个*.so*.a文件,其中包含以下文件(mlpack_test.cppmlpack_test.hpp)和mlPack库。这个错误是在尝试的时候发生的。

mlPack_test.hpp

代码语言:javascript
复制
#include <iostream>
#include <string>
#include "mlpack/core.hpp"
#include "mlpack/methods/random_forest/random_forest.hpp"
#include "mlpack/methods/decision_tree/random_dimension_select.hpp"
#include "mlpack/core/cv/k_fold_cv.hpp"
#include "mlpack/core/cv/metrics/accuracy.hpp"
#include "mlpack/core/cv/metrics/precision.hpp" 
#include "mlpack/core/cv/metrics/recall.hpp"

using namespace arma;
using namespace mlpack;
using namespace mlpack::tree;
using namespace mlpack::cv;

using namespace std;

void Test();

mlPack_test.cpp

代码语言:javascript
复制
#include "mlpack_test.hpp"

void Test()
{
    string save_model_path = "model.bin";

    string sample = "1265,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,1,0,0";
    mat dataset(sample);
    Row<size_t> labels;
    labels = conv_to<Row<size_t>>::from(dataset.row(dataset.n_rows - 1));
    dataset.shed_row(dataset.n_rows - 1);

    const size_t numClasses = 5;
    const size_t minimumLeafSize = 5;
    const size_t numTrees = 50;

    RandomForest<GiniGain, RandomDimensionSelect> rf;
    rf = RandomForest<GiniGain, RandomDimensionSelect>(dataset, labels,
        numClasses, numTrees, minimumLeafSize);

    Row<size_t> predictions;
    rf.Classify(dataset, predictions);
    const size_t correct = arma::accu(predictions == labels);
    cout << "\nTraining Accuracy: " << (double(correct) / double(labels.n_elem))<<endl;
    mlpack::data::Save(save_model_path, "model", rf, false);

}

误差

每当我尝试使用*.so*.a文件创建ndk-build时,都会发生以下错误:

Android.mk文件如下:

代码语言:javascript
复制
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello-jni-prebuilt
CODE_PATH := .
LOCAL_C_INCLUDES := $(LOCAL_PATH)
LOCAL_SRC_FILES := mlpack_test.cpp
include $(BUILD_SHARED_LIBRARY)

包括库文件夹在内的所有文件都在LOCAL_PATH中:

EN

回答 1

Stack Overflow用户

发布于 2022-03-02 02:30:14

使用-frtti和-exception CPP标志在Android.mk文件中解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71246685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档