【问题标题】:Why won't this simple LiveCode iOS external compile?为什么这个简单的 LiveCode iOS 不能外部编译?
【发布时间】:2013-02-23 07:02:19
【问题描述】:

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

external test

function testMyExternal
    return boolean

test.mm文件如下:

bool testMyExternal(void) {
    return true;
}

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

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

【问题讨论】:

    标签: ios objective-c xcode livecode


    【解决方案1】:

    Monte 设法回答了他自己的问题,但在这种情况下,外部是一个 .mm 文件,这意味着它的 obj-c++。这意味着您需要在 lcidl 文件中添加 use c++-naming 否则生成的胶水代码将寻找 C 风格(未损坏的)名称 (C++ 'mangles' 函数名称以包含输入信息,以便它们可以被重载)

    【讨论】:

      【解决方案2】:

      这个问题是在 LiveCode listserve 上提出的,我在这里提问和回答,因为答案对其他人有用。

      这里有几个问题:

      首先是 ios 文件,它指定框架和库以针对包括 Foundation 框架编译外部框架,但 .lcidl 文件中未指定 use objc-objects 子句。如果您不想使用目标 c 对象,请从 .ios 文件中删除基础框架。

      第二个是文件是一个.mm,它是Objective-C++,并且没有指定use c++-naming 子句。如果您不想要 C++,您可以将 C 的 .mm 更改为 .c 或 Objective-C 的 .m。

      更多细节可以在documentation的第6.3节中找到

      【讨论】:

        猜你喜欢
        • 2011-07-08
        • 1970-01-01
        • 1970-01-01
        • 2012-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-02
        • 1970-01-01
        相关资源
        最近更新 更多