我们有一个相当大的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。