0

我将一个头文件及其源代码添加到我的 xcode 项目中。

例如,AddToo.h

@interface AddTool : NSObject


-(NSString*) test:(NSString*) string;

@end

以下是源代码

@implementation AddTool

-(NSString*) test:(NSString*) string {

    return string;
}

@end

测试.def

language=Objective-C
headers=AddTool.h
package=com.tomliu

当我运行 xcode 项目时,

发生错误

架构 arm64 的未定义符号:“_OBJC_CLASS_$_AddTool”,引用自:

那么我应该先将 AddTool 构建为静态库并将其添加到 .def 文件中的 linkerOpts 吗?

还有其他方法可以解决这个问题吗?

我的 kotlin 版本是 1.3.72

谢谢

4

1 回答 1

1

注意:此答案复制了我对位于基于 YouTrack 的 Kotlin 问题跟踪器中的此问题副本的答案(请参阅此处)。
据我所知,不能让事情以这种方式进行。即使您可以使用cinterop将此.def文件作为输入的工具,它也只会发出 C 库或 Objective-C 库/框架的绑定。这些绑定就像标题一样,它们不包含实际代码,它们应该指向目标文件或共享库。所以是的,编译一个静态库在这里应该会有所帮助。

于 2020-06-16T07:54:23.780 回答