我们有一个相当大的 c++ 库,我们将其打包在一个 Adobe Flex 扩展中,供我们的 Flex 用户使用。我们为多个平台打包了该 ANE,包括 Mac OS 和 iOS。在 Mac 上,当我们使用传统的标准 C++ 库 ( libstdc++
) 构建时,一切都很好。当然,我们不想停留在一个过时的即将不受支持的库中,我们切换到当前的libc++
. 该库(.a 文件)以这种方式构建得很好,调用该库的本机 iOS 应用程序也是如此。
但是,adt
构建 ANE 的 Adobe 工具现在失败,没有有用的错误消息(不要让我开始关注 Adobe 工具的质量)。Unix 进程的一些诡计让我们找出adt
调用 OS 链接器的方法ld
。复制相同的ld
调用让我们发现链接器抱怨大量未定义的符号,所有(或可能大多数)都是标准 C++ 库符号。
实际上,该ld
调用用作-lstdc++
引用遗留库的参数。我想使用 libc++ 会暗示这个lc++
论点。ld
但是,由于(显然)不相关的目录问题,尝试进行此类修改失败。
那么有没有办法告诉adt
我们的 .a 库使用当前的标准 C++ 库而不是旧的库?该限制是否有任何明智的解决方法adt
?更一般地说,有没有办法说服adt
(以及一般的 Flex Builder)不要拦截和吃掉工具错误消息?
欢迎任何建议。这是使用 Xcode 4.5.1。