Closed BrainKu closed 11 months ago
目前我还在 intel x86 下编译,没有 m 系列真机环境。不清楚是否是环境因素导致。你可以直接下载通过 github action 编译的 framework 使用。
我试着修改了一个 demo,最终一点点排查之后发现我这里是两个问题:
cSettings: [.headerSearchPath("Sources/C")]
设置,只能通过单独添加另外一个 target,并让 OC target 依赖它才能正常引用不知道是否 XCode 或者 Swift 版本的问题,但问题确实是解决了
我试着修改了一个 demo,最终一点点排查之后发现我这里是两个问题:
- ObjC 引用的 C 头部文件无法通过
cSettings: [.headerSearchPath("Sources/C")]
设置,只能通过单独添加另外一个 target,并让 OC target 依赖它才能正常引用- 另外一个坑的地方是,如果一个 C target 里面只有头文件没有 c 文件,那他是不会被编译的,所以我还增加了空实现的 .c 文件。
不知道是否 XCode 或者 Swift 版本的问题,但问题确实是解决了
我用的是最新版本的XCode ,请问你那边用的版本多少?
我试着修改了一个 demo,最终一点点排查之后发现我这里是两个问题:
- ObjC 引用的 C 头部文件无法通过
cSettings: [.headerSearchPath("Sources/C")]
设置,只能通过单独添加另外一个 target,并让 OC target 依赖它才能正常引用- 另外一个坑的地方是,如果一个 C target 里面只有头文件没有 c 文件,那他是不会被编译的,所以我还增加了空实现的 .c 文件。
不知道是否 XCode 或者 Swift 版本的问题,但问题确实是解决了
我用的是最新版本的XCode ,请问你那边用的版本多少?
我这边 xcode 还只是 14.3.1,再升级需要升级系统版本。但因为当前系统版本 13.3.1 只能更新到 14.1.1 就都没动。
好的,应该是 spm 的版本差异问题,cSettings 这个参数是 SPM 5 版本加入的。
https://developer.apple.com/documentation/packagedescription/target/csettings
好的,应该是 spm 的版本差异问题,cSettings 这个参数是 SPM 5 版本加入的。
https://developer.apple.com/documentation/packagedescription/target/csettings
很怪异的,我这边的 spm 版本应该跟你是一样的?按理说 spm 版本相同,不应该有这种问题🤣 // swift-tools-version: 5.7 // The swift-tools-version declares the minimum version of Swift required to build this package.
@BrainKu 您好,我是用 M2 Max 电脑来开发这个项目,下载了这个仓库编译的 Framework 文件之后,在 Xcode 中无法编译运行仓的主程序的 simulator,报错是 undefined symbol。我觉得应该是编译出的 Framework 文件缺少 arm64 架构的 simulator 代码的问题。
但是看您这边似乎可以在 M1 Pro 上编译运行?请问有遇到我上面的这个问题吗?
@BrainKu 您好,我是用 M2 Max 电脑来开发这个项目,下载了这个仓库编译的 Framework 文件之后,在 Xcode 中无法编译运行仓的主程序的 simulator,报错是 undefined symbol。我觉得应该是编译出的 Framework 文件缺少 arm64 架构的 simulator 代码的问题。
但是看您这边似乎可以在 M1 Pro 上编译运行?请问有遇到我上面的这个问题吗?
@tansongchen 我将系统升级到最新的 14.1.1 以及 Xcode 15 之后就没再遇到我一开始遇到的问题了。 arm64 simulator 缺失的问题我也发现了,但因为我主要是运行在真机,这里我没有影响。运行在模拟器的时候我切换到 Rosetta 也可以正常运行起来。
OK 的,感谢确认,那我回头按 https://github.com/imfuxiao/LibrimeKit/issues/6 里说的方法增加一下 amd64 simulator 的支持
环境: 系统:Mac 13.3.1 M1 Pro XCode:14.3.1
问题: 我在尝试编译 Librime 时,运行
swift build
会提示找不到在 Source/C 下的 header 文件将 header 文件复制到 Source/ObjC 之后可以执行 swift build 但对整个项目进行编译的时候就提示了 Bool 定义的冲突
折腾了好几天仍然不知道怎么修改,似乎只要用这个 C header 就一定会有这个
typedef int Bool
的问题