我正在构建一个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);
}
很明显,我缺少了一些东西。 libcardios目录下的cpp源代码是否已编译?它不应该自动链接吗?
任何帮助表示赞赏。
编辑:通过手动创建组并将文件倒入每个文件夹来解决该问题。根本没有按照我以前添加目录的方式来编译代码。
文件夹必须是黄色而不是蓝色。蓝色文件夹将为packed in the app bundle。