我使用LiveCode iOS外部SDK创建了一个简单的外部。 test.lcidl文件如下:
external test
function testMyExternal
return boolean
test.mm文件如下:
bool testMyExternal(void) {
return true;
}
test.ios文件是默认的Foundation框架。
这很简单,但它不会编译......为什么不呢?
答案 0 :(得分:3)
在LiveCode listserve上询问了这个问题,我在这里提问和回答,因为答案对其他人有用。
这里有一些问题:
首先是ios文件,它指定用于编译外部的框架和库,包括Foundation框架,但在.lcidl文件中未指定使用objc-objects子句。如果您不想使用目标c对象,请从.ios文件中删除基础框架。
其次是文件是.mm,它是Objective-C ++,并且没有指定使用c ++ - 命名子句。如果你不想要C ++,你可以将.mm更改为.c代表C或.m代替Objective-C。
更多细节可以在documentation
的第6.3节中找到答案 1 :(得分:2)
Monte设法回答了他自己的问题,但在这种情况下,外部是.mm文件,这意味着它的obj-c ++。这意味着您需要在lcidl文件中添加使用c ++ - 命名 否则生成的胶水代码将查找C风格(未拼写的)名称 (C ++'破坏'函数名称以包含输入信息,以便它们可以重载)