swift - 如何将 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
主要的快速文件是
// 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 的文件夹。
推荐阅读
- python - 如何让python计算一个目录中有多少个文件?
- python - python格式的文件
- vagrant - vagrant box 中止,上不去
- python - 使用 DateTimeIndex 选择行而不参考日期
- sql - 返回 PLSQL ORACLE 的错误不工作
- yii2 - 在 https://github.com/yiisoft/jquery-pjax.git 的任何分支或标签中都没有找到有效的 bower.json
- matlab - 无法在 matlab 中保存工作区变量
- batch-file - 为什么批处理脚本的执行在 IF/ELSE 语句上意外结束?
- javascript - 以下节点模块返回“未定义”,但为什么呢?
- python - 学习影响给定列表值的两个数据框之间的关系的最佳方法是什么?