我无法使用AAF SDK链接Xcode项目,在MacOS 10.9.5上使用Xcode 5.1.1。当我链接主动态库时,这些符号会丢失:
_StgCreateDocfile
_StgCreateDocfileOnILockBytes
_StgOpenStorage
_StgOpenStorageOnILockBytes
AssertProc
我无法在SDK的整个源代码树中的任何位置找到它们的定义。前四个似乎是Windows上结构化存储的一部分。 SDK中提供了结构化存储库,我已将其链接起来。
有人能告诉我一个定义这些的Mac系统库吗?或者是否有一个链接器参数为它们提供了一个库?谢谢你的帮助。
答案 0 :(得分:0)
迟到的答案(!),但万一有人碰到这个......解决方案是:
使用带有AAF SDK的makefile生成AAF dylib, 哪个工作正常。或...
如果您使用Xcode构建AAF SDK,请确保正确无误
保留#defines
,即:
_DEBUG
OM_DEBUG
OM_STACK_TRACE_ON_ASSERT
OM_USE_SCHEMASOFT_SS
OM_STRUCTURED_STORAGE
请注意,DEBUG=1
不存在(默认情况下由Xcode添加) - 如果已定义,则会引入AssertProc
。在发布版本上定义NDEBUG
并省略调试定义。
正如您所述,Stg ...函数是结构化存储的MS实现的一部分,但不应在Mac上引用,即使用Schemasoft实现。