此Xcode链接器错误的根本原因是什么?

时间:2019-09-10 08:47:22

标签: c++ xcode react-native

我正在构建一个React Native App,其中嵌入了带有C ++ 11源代码的Native模块。

使用Xcode,链接程序无法找到符号:

undefined symbols for architecture arm64:
  "CardioS::captureTick(CardioS::CaptureData*, int)", referenced from:
      com::sensoriaanalytics::dataengine::DataBridgeImpl::provideOxymeterData(std::__1::shared_ptr<JavascriptArray> const&, std::__1::shared_ptr<JavascriptPromise> const&) in data_bridge_impl.o

源代码位于项目 cardios.cpp 中,由 data_bridge_impl.cpp 使用:

#include "cardios.h"
#include "dataflow/WorkflowController.h"
#include "DataHandler.h"

static WorkflowController* wfc;
static DataHandler* dh;

Workflow* initWf(int CaptureFs, int CoreFs, int CaptureTime, int nSamples);


void CardioS::init(){
    wfc = new WorkflowController(initWf);
    dh = new DataHandler();
    dh->init();
}

void CardioS::start(int CaptureFs, int CoreFs, int CaptureTime, int nSamples){
    wfc->start(CaptureFs, CoreFs, CaptureTime, nSamples);
}

void CardioS::stop(){
    wfc->stop();
}

void CardioS::captureTick(CaptureData* captureData, int size){
    wfc->tick(captureData, size);
}

 bool CardioS::getLastData(LiveDataType t, LiveDataValue* val){
    return dh->getLiveData(t, val);
}

void CardioS::registerDataCallback(LiveDataType t, DataCallback dcb){
    dh->registerDataCallback(t, dcb);
}

bool CardioS::getFinalData(FinalDataType type, FinalDataValue* data){
    return dh->getFinalData(type, data);
}

enter image description here

很明显,我缺少了一些东西。 libcardios目录下的cpp源代码是否已编译?它不应该自动链接吗?

任何帮助表示赞赏。

编辑:通过手动创建组并将文件倒入每个文件夹来解决该问题。根本没有按照我以前添加目录的方式来编译代码。

文件夹必须是黄色而不是蓝色。蓝色文件夹将为packed in the app bundle

0 个答案:

没有答案