为什么这个简单的LiveCode iOS外部编译不会?

时间:2013-03-07 21:26:01

标签: ios objective-c xcode livecode

我使用LiveCode iOS外部SDK创建了一个简单的外部。 test.lcidl文件如下:

external test

function testMyExternal
    return boolean

test.mm文件如下:

bool testMyExternal(void) {
    return true;
}

test.ios文件是默认的Foundation框架。

这很简单,但它不会编译......为什么不呢?

2 个答案:

答案 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 ++'破坏'函数名称以包含输入信息,以便它们可以重载)