[Your First Cross-Platform Djinni App: Part 2, iOS][1]
我遵循此guidline,并且如果我使用Object-C项目创建新项目,一切正常。但是,我想使用Swift项目,所以我更改了项目语言并创建了一个桥梁,将Swift与Object-C连接起来。但它不能工作。Djinni快速项目链接错误
,如果我尝试调用这个函数,错误发生
let hw = LipHelloWorld.create()
Undefined symbols for architecture x86_64:
"std::__1::__shared_weak_count::__get_deleter(std::type_info const&) const", referenced from:
vtable for std::__1::__shared_ptr_emplace<personalapp::HelloWorldImpl, std::__1::allocator<personalapp::HelloWorldImpl> > in libpersonalapp_objc.a(HelloWorldImpl.o)
"std::__1::__next_prime(unsigned long)", referenced from:
请帮帮我!
hello_world.hpp
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from personalapp.djinni
#pragma once
#include <memory>
#include <string>
namespace personalapp {
class HelloWorld {
public:
virtual ~HelloWorld() {}
static std::shared_ptr<HelloWorld> create();
virtual std::string get_hello_world() = 0;
};
} // namespace personalapp
HelloWorldImpl.hpp
#pragma once
#include "hello_world.hpp"
namespace personalapp {
class HelloWorldImpl : public personalapp::HelloWorld{
public:
HelloWorldImpl();
std::string get_hello_world() override;
};
}
PersonalApp桥接-Header.h
#pragma once
#include "LipHelloWorld.h"
你能提供: - 你的std :: shared_ptr的实现 HelloWorld :: create(); - Objective-C桥接头的内容? –
mkk
@mkk我已经更新了问题的细节和答案,谢谢。 – yeyimilk