簡體   English   中英

MoSync與外部庫的鏈接

[英]MoSync linking with external library

我剛剛發現了MoSync SDK,並認為它是C ++程序員使用相同源代碼生成iOS和Android應用程序的一個很好的選擇。 對於C ++程序員而言,MAUI API非常易於學習。 我在iPhone模擬器上測試了提供的示例,並且效果很好。 但是,當查看xcodeproject文件時,發現了一個看起來像匯編代碼的C ++源文件。 我搜索了有關編譯過程的信息,似乎原始的c ++代碼已轉換為IL語言,而IL語言已轉換為C ++代碼。

是否有人對此過程的性能問題有任何想法? 生成的代碼有效嗎?

我想到了用一個在靜態庫中調用C ++代碼的UI制作一個簡單的iOS蘋果。 因此,我制作了一個靜態庫(libmylib.a),該庫導出一個函數:

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

然后,我從MoSync HelloNativeUI示例內部調用tst_function ,並將libmylib.a添加到MoSync IDE中的鏈接器標志。 但是我在編譯過程中出錯:

>>pipe-tool libmylib.a -appcode=KOOU -stabs=stabs.tab .....

failed to load '-appcode=KOOU'

我還嘗試將libmylib.a添加到mastdD.lib,MAUtilD.lib,NativeUI.lib之后的其他庫中,但是卻收到此錯誤消息:

那么,如何告訴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有關從外部靜態庫調用函數的信息呢?

親切的問候,

Pipe-tool將僅接受MoSync IL,但是您嘗試向其提供ARM代碼。 那是行不通的。

但是,可能有一種解決方法。 您可以創建一個存根庫,使用程序對其進行編譯,然后將其從生成的c ++代碼中刪除,然后將其替換為正確的版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM