0

MoSync SDKを発見したばかりで、C++ プログラマーが同じソース コードを使用して iOS および Android アプリケーションを作成するための非常に優れたオプションであると考えました。MAUI API は、C++ プログラマーにとって習得が非常に簡単です。提供された例を iPhone シミュレーターでテストしたところ、かなりうまく機能しました。しかし、xcodeproject ファイルを見ると、アセンブラー コードのように見える C++ ソース ファイルが見つかりました。コンパイル プロセスに関する情報を検索したところ、元の C++ コードが IL 言語に変換され、IL 言語が C++ コードに変換されているようです。

このプロセスのパフォーマンスの問題について何か考えがある人はいますか? 生成されたコードは効率的ですか?

静的ライブラリで私の C++ コードを呼び出すいくつかの UI を備えた単純な iOS アップルを作成することを考えました。そこで、1 つの関数をエクスポートする静的ライブラリ (libmylib.a) を作成しました。

extern "C" double tst_function(double x)
{
    return sin(x)+2.5;
}

次にtst_function、MoSync HelloNativeUI サンプル内から呼び出し、MoSync IDE のリンカー フラグに libmylib.a を追加しました。しかし、コンパイルプロセスでエラーが発生しました:

>>pipe-tool libmylib.a -appcode=KOOU -stabs=stabs.tab .....
 
failed to load '-appcode=KOOU'

mastdD.lib、MAUtilD.lib、NativeUI.lib の直後に libmylib.a を追加ライブラリに追加しようとしましたが、次のエラー メッセージが表示されました。

では、スタティック ライブラリにある外部関数の呼び出しについて MoSync IDE に伝えるにはどうすればよいでしょうか。

pipe-tool Copyright 2007-2009 Mobile Sorcery AB
pass 1. 97 known symbols.
/Users/mosyncbuilder/slave/buildScripts/temp_j4DF/source/libs/NativeUI/ActivityIndicator.cpp:58: Error: Illegal instruction '!<arch>',

では、外部の静的ライブラリから関数を呼び出すことについて IDE MoSync に伝えるにはどうすればよいでしょうか?

敬具、

4

1 に答える 1

0

Pipe-tool は MoSync IL のみを受け入れますが、ARM コードをフィードしようとしました。それはうまくいきません。

ただし、回避策が考えられる場合があります。スタブ ライブラリを作成し、プログラムでコンパイルしてから、生成された C++ コードから削除し、適切なバージョンに置き換えることができます。

于 2012-06-18T09:56:54.837 に答える