0

我为 CanonEDSDK 创建了一个 Objective-C 框架,其中EdsInitializeSDK仅支持 i386 架构。我将框架导入到 Swift 项目中,但在调用时EdsInitializeSDK()出现以下错误:

“_EdsInitializeSDK”,引用自:test.AppDelegate.applicationDidFinishLaunching (test.AppDelegate)(__ObjC.NSNotification) -> () in AppDelegate.o

ld:未找到架构 x86_64 的符号

clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

4

1 回答 1

1

正如@MartinR 在评论中所描述的,Swift 是 64 位的,所以所有使用的库都应该是 64 位的。适用于 OSX 的 EDSDK v3.2.1 确实包含您可以使用的 64 位版本。

请注意,在这个 64 位版本中,对 RAW 文件的操作(保存为 TIFF,但甚至可以读取信息)只能对由一组有限的新相机创建的文件执行:

  • EOS 5DS / EOS 5DS R /
  • EOS REBEL T6s / EOS 760D / EOS 8000D /
  • EOS REBEL T6i / EOS 750D / EOS Kiss X8i /
  • EOS M3

对旧相机文件的操作将尝试动态加载 32 位库,从而导致运行时动态链接错误!

于 2016-01-30T18:30:21.627 回答