2012-09-04 31 views
1

我有一個Monotouch項目鏈接到包含C++模塊的靜態庫。
MonoTouch的版本:3.0.3.5
的XCode版本:4.4.1
C/C++編譯器:蘋果LLVM 4.0未定義「___divmodsi4」將Monotouch項目與靜態庫鏈接到發佈模式

當建立在調試模式下爲iOS模擬器和iOS設備的一切項目是OK - 應用鏈接並運行。 然而構建釋放配置iOS裝置時就會出現以下錯誤:

Undefined symbols for architecture armv7: "___divmodsi4" 


從靜態庫代碼以某種方式下面的行引起麻煩:

int number_of_buckets = num_samples/window_samples_step; 

如果該行被修改爲以下問題消失:

int number_of_buckets = (int)((float)num_samples/(float)window_samples_step); 

你有什麼想法如何解決沒有上述修改的問題?

謝謝, Ury。

回答

1

這發生在構建結束附近,通常取決於它的原始參數。儘量把發佈之間比較你的選擇調試建立並檢查:

  • 您使用的是相同的附加型mTouch參數兩個配置;

  • 您正在使用相同的編譯器,Mono AOT與LLVM編譯器,在這兩種配置上;

  • 在兩種配置上,您都使用相同的體系結構,ARMv6與ARMv7

否則連接(例如優選將bug report或引擎收錄)的完整構建日誌(從MonoDevelop中的錯誤墊構建輸出)兩者調試推出構建。

更加有用在重新構建之前,將「-v -v -v」添加到附加的mtouch參數。這將增加關於每個步驟的詳細程度(細節)。

+0

**其他mtouch參數**是相同的,除了必要的更改(Release vs Debug)。 在兩種配置上都使用相同的編譯器** LLVM **,** ** ARMv7 **是兩者的體系結構。 我將** Build Output **放入謝謝,Ury。 –

+0

我無法訪問該URL(請求憑據)。請用數據填寫錯誤報告。 – poupou

+0

我希望它是固定的。請再試一次。 –

1

您需要將應用程序的部署目標(在項目的選項Build/iPhone Application頁面中)設置爲至少5.0。

相關問題