Sup*_*tar 6 module environment-variables tilde-expansion swift module-map
我的module.modulemap文件看起来像这样:
module CompanyInternalSDK {
header "~/Company/CompanyInternalSDK.framework/Headers/CompanyInternalSDK.h"
export *
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到此错误:
/Users/username/Path/To/Project/CompanyInternalSDK/module.modulemap:2:12: error: header '~/Company/CompanyInternalSDK.framework/Headers/CompanyInternalSDK.h' not found
header "~/Company/CompanyInternalSDK.framework/Headers/CompanyInternalSDK.h"
^
Run Code Online (Sandbox Code Playgroud)
当我使用没有波浪号的绝对路径时,它编译得很好,但由于这将像这样分发给所有开发人员,我想使用波浪号。有什么办法可以使这项工作正常进行吗?
我还尝试在header字符串中使用环境变量,但这也不起作用:
module CompanyInternalSDK {
header "${HOME}/Company/CompanyInternalSDK.framework/Headers/CompanyInternalSDK.h"
export *
}
Run Code Online (Sandbox Code Playgroud)
/Users/username/Path/To/Project/CompanyInternalSDK/module.modulemap:2:12: error: header '${HOME}/Company/CompanyInternalSDK.framework/Headers/CompanyInternalSDK.h' not found
header "${HOME}/Company/CompanyInternalSDK.framework/Headers/CompanyInternalSDK.h"
^
Run Code Online (Sandbox Code Playgroud)
不,模块映射语法不会扩展波浪号或环境变量。它最终只是期望stat你给它的路径,如果那里没有文件,它就会抱怨。
File对象,如此处框架Headers/公共标头文件夹中的标头。getFile最终调用 来getStatValue进行缓存查找。FileSystemStatCache::get以 LLVM 的文件系统抽象为基础,它调用sys::fs::status,其行为类似于 POSIX stat。stat按原样使用路径,没有波形符或环境变量扩展 - 这些的常见可用性是由于 shell 帮助您解决的,而不是大多数时候在系统级别自动发生的事情。但是,在模块映射中使用相对路径是标准的。词法分析器尊重这一点,并且所有模块映射文档都证明了这一点。在常见情况下,模块映射文件与库位于同一位置并与其一起安装,这应该足以正确解析路径。
| 归档时间: |
|
| 查看次数: |
590 次 |
| 最近记录: |