0

我刚刚发现了MoSync SDK,我认为它是 C++ 程序员使用相同源代码生成 iOS 和 Android 应用程序的一个非常好的选择。MAUI API 对于 C++ 程序员来说非常容易学习。我在 iPhone 模拟器上测试了一个提供的示例,它运行良好。但是当查看 xcodeproject 文件时,发现了一个看起来像汇编代码的 C++ 源文件。我搜索了有关编译过程的信息,似乎原始 c++ 代码被翻译为 IL 语言,而 IL 语言被转换为 C++ 代码。

有没有人对此过程的性能问题有任何想法。生成的代码是否有效?

我想用一些 UI 来制作一个简单的 iOS 苹果,这些 UI 在静态库中调用我的 C++ 代码。所以我制作了一个静态库(libmylib.a),它导出一个函数:

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

然后我tst_function从 MoSync HelloNativeUI 示例中调用并将 libmylib.a 添加到 MoSync IDE 中的链接器标志。但是我在编译过程中遇到了错误:

>>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 回答