微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将 Imebra v5 集成到 swift 命令行项目

如何解决如何将 Imebra v5 集成到 swift 命令行项目

我正在尝试使用 Xcode 12 将 Imebra 导入到一个基本的 swift 5 命令行项目中。我遵循了官方的 steps 但我失败了。我可以总结一下整个结构:

项目的结构只是

./
├── main.swift
├── Data
   └── DX_0.dcm
├── Imebra
   └── CMakeLists.txt
   └── docs
   └── examples
   └── library
   └── test
   └── wrappers
   └── build_imebra_macos

主要的swift文件

// main.swift

import Foundation

print("Hello,Imebra!")

do {
   let pDataSet = try ImebraCodecFactory.load(fromFile: "PathToDicomFileFromExecutable")
    let pImage = try pDataSet.getimageApplyModalityTransform(0)
   print("The image width is",pImage.width)
} catch {
   print(error)
}

按照文档,我通过转到 build_imebra_macos 文件夹并运行来编译库

build_imebra_macos % cmake -GXcode -DCMAKE_BUILD_TYPE=Release ..
build_imebra_macos % cmake --build . --config Release

构建成功,新建文件夹Release有动态库。现在在 CL Swift 应用程序的 Xcode 项目 SwiftyImebra.xcodeproj 中,我按照下一条指令“打开目标构建设置并在“Swift Compiler/ObjectiveC Bridging Header”下指定 imebra_location/wrappers/objectivec/include/imebraobjc/imebra 的路径.h.”,将 Imebra_location 更改为 Imebra。

然后当我构建时出现错误

Showing All Messages
Undefined symbol: _OBJC_CLASS_$_ImebraCodecFactory

我是 Swift 新手,我想我需要在 Xcode 中指定源或动态库所在的位置。但是,我对此也不确定,因为我们已经生成一个 cpp 动态库,因此它只能与 Objective-C (?) 交互。如果这是一个基本问题,我深表歉意...

另外,我想学习如何使用 Imebra 作为 swift 的静态库。

解决方法

必须在项目中添加imebra动态库。

将 imebra.dylib(生成到您的构建文件夹 build_imebra_macos)拖到您的项目中。

另外,在编译器选项中的“库搜索路径”中指定包含 dylib 的文件夹。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。