我們有一個相當大的C++庫,我們打包在Adobe Flex擴展中供Flex用戶使用。我們將該ANE包裝在多個平臺上,包括Mac OS和iOS。在Mac上,當我們使用傳統標準C++庫(libstdc++
)構建時,一切都很好。當然,我們不想留在過時的不受支持的庫中,我們切換到當前的libc++
。庫(.a文件)的構建方式很好,調用該庫的本地iOS應用程序也是如此。在Adobe Flex本機擴展中使用libC++而不是libstdC++
但是,adt
構建ANE的Adobe工具現在會失敗,並且沒有有用的錯誤消息(不要以Adobe工具質量開頭)。 Unix流程的一些欺騙讓我們發現adt
稱爲操作系統鏈接器ld
。複製相同的ld
調用,讓我們發現鏈接器抱怨未定義符號的一大堆,所有(或者大多數)符號都是標準C++庫符號。
事實上,ld
調用使用作爲引用舊式庫的參數-lstdc++
。我想使用libC++會暗示lc++
參數。然而,嘗試這樣修改的ld
由於(顯然)不相關的目錄問題而失敗。
那麼有沒有辦法告訴adt
我們的.a庫使用當前的標準C++庫而不是傳統的庫?有沒有什麼明智的解決方法可以解決adt
限制?更一般地說,有沒有一種方法可以說服adt
(以及一般的Flex Builder)不會攔截並使用工具錯誤消息?
任何建議歡迎。這是使用Xcode 4.5.1。