objective-c - Clang 将 #import 语句误解为文件,而不是框架
问题描述
我有#import <customframeworkname/customframeworkname.h>
。Xcode 确实在 Linked Frameworks and Libraries 下列出了框架。
但是,当使用 Clang 从命令行编译它时,它会说:
../cppsrc/stuff.mm:6:9: fatal error: 'customframeworkname/customframeworkname.h' file not found
#import <customframeworkname/customframeworkname.h>
我尝试通过执行将其更改为相对路径#import <../customfwdir/customframeworkname/Headers/customframeworkname.h>
。现在它找到了文件,但由于框架包含许多头文件,它无法识别框架的内部头文件,其中使用#import <customframeworkname/otherheader.h>
. 显然,改变整个框架会很糟糕。
我是 macOS 开发的超级新手,任何正确方向的提示都将不胜感激!
附加上下文:构建一个跨平台 node.js 插件,这就是我通过命令行编译它的原因,特别是 node-gyp。Node-gyp 有一个命令来生成一个 xcode 项目文件,我用它来检查以确保我在绑定文件中定义的构建设置正确地转换为 xcode 设置。
{
"targets": [
{
"target_name": "myproj",
"cflags!": [ "-fno-exceptions" ],
"cflags_cc!": [ "-fno-exceptions" ],
"sources": [
"cppsrc/wrapper.cc"
],
"conditions": [
["OS=='mac'", {
"xcode_settings": {
"FRAMEWORK_SEARCH_PATHS": "$(SRCROOT)/**"
},
"link_settings": {
"libraries": [
"customfws/fwname.framework"
]
},
"sources": [
"cppsrc/stuff.mm"
]
}]
],
"include_dirs": [
"<!@(node -p \"require('node-addon-api').include\")"
],
'defines': [ 'NAPI_DISABLE_CPP_EXCEPTIONS' ]
}
]
}
解决方案
推荐阅读
- oracle - 如何在过程中创建用户定义的异常?
- xml-parsing - 在 PDI 中,即使不存在子元素,如何解析 XML 以获取父元素行?
- python - Python 中最紧凑的类 JS 线程模型?
- php - 在 iframe 中运行 Laravel Web App 时出现错误 419 Session Expired
- svelte - Sveltstrap 中的表单验证
- go - Go 中的预处理器指令与 C 中的一样
- python - 如何左对齐数据框
- powershell - 如何使用正确解析的参数从 powershell 启动新的 powershell 窗口
- java - 为什么我不断收到输入不匹配异常错误
- reactjs - 如何在 React js 中获取实时年份日期?