4

LiveCodeiOS外部SDKを使用して単純な外部を作成しました。test.lcidlファイルは次のとおりです。

external test

function testMyExternal
    return boolean

test.mmファイルは次のとおりです。

bool testMyExternal(void) {
    return true;
}

test.iosファイルはデフォルトのFoundationフレームワークです。

これは簡単ですが、コンパイルされません...なぜですか?

4

2 に答える 2

3

この質問はLiveCodeのメーリングリストで質問されました。回答は他の人にも役立つので、ここで質問して回答します。

ここにはいくつかの問題があります。

1つ目は、外部をコンパイルするフレームワークとライブラリを指定するiosファイルです。インクルードFoundationフレームワークですが、.lcidlファイルでuseobjc-objects句が指定されていません。Objective Cオブジェクトを使用したくない場合は、.iosファイルからFoundationFrameworkを削除してください。

2つ目は、ファイルがObjective-C ++である.mmであり、usec++-naming句が指定されていないことです。C ++が必要ない場合は、Cの場合は.mmを.cに、Objective-Cの場合は.mに変更できます。

詳細については、ドキュメントのセクション6.3を参照してください。

于 2013-03-07T21:26:00.757 に答える
2

モンテはなんとか彼自身の質問に答えることができましたが、この場合、外部はそのobj-c++を意味する.mmファイルです。これは、lcidlファイルにuse c ++-namingを追加する必要があることを意味します。そうしないと、生成されるグルーコードがCスタイルの(マングルされていない)名前を検索します(関数のC ++'マングル'名は、オーバーロードできるように入力情報を含めます)

于 2013-03-08T10:32:17.117 に答える