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



我正在尝试使用 Xcode 12 将 Imebra 导入到基本的 swift 5 命令行项目中。我按照官方步骤操作,但我失败了。我可以总结整个结构:

项目的结构只是

./
├── 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

生成成功,新文件夹"发布"具有动态库。现在在 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 的文件夹。

最新更新