我将一个头文件及其源代码添加到我的 xcode 项目中。
例如,AddToo.h
@interface AddTool : NSObject
-(NSString*) test:(NSString*) string;
@end
以下是源代码
@implementation AddTool
-(NSString*) test:(NSString*) string {
return string;
}
@end
test.def
language=Objective-C
headers=AddTool.h
package=com.tomliu
当我运行 xcode 项目时,
发生错误
架构 arm64 的未定义符号: "_OBJC_CLASS_$_AddTool",引用自:
那么我应该先将AddTool构建为静态库并将其添加到.def文件中的链接器选择吗?
还有其他方法可以解决此问题吗?
我的 kotlin 版本是 1.3.72
谢谢
注意:这个答案复制了我在基于 YouTrack 的 Kotlin 问题跟踪器中对这个问题副本的回答(见这里(。
据我所知,不能让事情以这种方式进行。即使你可以使用cinterop
工具将此.def
文件作为输入,它也只会发出C库或Objective-C库/框架的绑定。这些绑定就像标头,它们不包含实际代码,它们应该指向目标文件或共享库。所以是的,编译静态库应该在这里有所帮助。