我正在尝试将this项目链接到我的iOS项目,因为所有者说它可以作为iOS应用程序的一部分进行链接,但他没有说明如何做到这一点,我添加了源代码文件和我的项目的opencv2框架然后创建桥接头文件来调用c ++函数但我不知道这是对的
我的.hpp
#ifndef LaneDetection_hpp
#define LaneDetection_hpp
#include <stdio.h>
#include "opencv2/opencv.hpp"
using namespace cv;
using namespace std;
void mainWindowCallback(int event, int x, int y, int flags, void* userdata);
int main(int argc, char** argv);
#endif /* LaneDetection_hpp */
·H
#ifdef __cplusplus
extern "C" {
#endif
void mainWindowCallback();
int main();
#ifdef __cplusplus
}
#endif
桥接-header.h
#import "LaneDetectionHeader.h"
viewController.swift
let laneDetector = main()
override func viewDidLoad() {
super.viewDidLoad()
session?.startRunning()
// Do any additional setup after loading the view.
laneDetector
}
我有这些错误
架构arm64的未定义符号: “LaneDetection :: Configuration :: ~Configuration()”,引自: LaneDetection ::中的LaneDetection :: Configuration :: getInstance() “用于LaneDetection ::配置的vtable”,引自: 在LaneDetection.o中的LaneDetection :: Configuration :: Configuration() 注意:缺少vtable通常意味着第一个非内联虚拟成员&gt;函数没有定义。 “LaneDetection :: Configuration :: setup(int,int,&gt; std :: __ 1 :: vector,std :: __ 1 :: allocator&gt;&gt ;,std :: __ 1 :: vector,&gt; std :: __ 1: :allocator&gt;&gt;,bool)“,引自: 在LaneDetection.o中的_main “LaneDetection :: Detector :: Detector(LaneDetection :: EventsDelegate *)”,&gt;引自: 在LaneDetection.o中的_main “vtable for Console :: ScreenEventsDelegate”,引自: LaneDetection.o中的Console :: ScreenEventsDelegate ::〜ScreenEventsDelegate() 注意:缺少vtable通常意味着第一个非内联虚拟成员&gt;函数没有定义。 “LaneDetection :: Detector :: processFrame(cv :: Mat&amp;,int)”,引自: 在LaneDetection.o中的_main “Console :: ScreenEventsDelegate :: ScreenEventsDelegate()”,引自&gt; from: 在LaneDetection.o中的_main “Console :: ScreenEventsDelegate :: render(cv :: Mat&amp;)”,引自: 在LaneDetection.o中的_main ld:找不到架构arm64的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
我是否需要先在swift上创建相机视图?并使它将数据发送到c ++函数,因为c ++中的main需要argc,argv,我不知道如何从Swift传递这些数据,或者还有另一种方法可以使它工作。
抱歉我的英语不好。edit1:我试图将我的项目链接到opencv框架,现在我在EventsDelegate.cpp文件中遇到了这些错误
edit2:现在说在LaneDetection.cpp中使用未声明的标识符'Console'Image
我没有更改原始内容,只创建了桥接头文件并尝试调用main函数。
项目Image
中的文件edit3:现在我从第一个Image
得到了同样的错误