【发布时间】:2019-07-21 23:23:04
【问题描述】:
macOS:10.14.5
XCode:10.2.1
Clang:8.0.0
我能够使用 XCode 成功编译 Obj-C,但是在尝试从命令行编译时遇到了一个致命错误,即缺少 Foundation.h。有关如何解决此问题的任何想法?
$ cat first_program.m
#import <Foundation/Foundation.h>
int main(int argc, const char *argv[]) {
@autoreleasepool {
NSLog(@"Hello, World!");
}
return 0;
}
$ clang -Wall -framework Foundation first_program.m
first_program.m:1:9: fatal error: 'Foundation/Foundation.h' file not found
#import <Foundation/Foundation.h>
^~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
$ clang -v
clang version 8.0.0 (tags/RELEASE_800/final)
Target: x86_64-apple-darwin18.6.0
Thread model: posix
InstalledDir: /usr/local/opt/llvm/bin
【问题讨论】:
-
stackoverflow.com/a/15812786/341994 我认为你必须向它展示 Foundation 在哪里
-
该尝试尚未成功,尝试过:
/System/Library/Frameworks和您示例中的路径。愚蠢的问题:如果找不到框架,如果您通过-framework Foundation,链接器不应该抛出错误吗?像ld: framework not found Foundation这样的东西。如果我尝试clang -framework blah,这就是我看到的 -
你有没有指向你的 Xcode 版本的命令行工具属性? OMM InstalledDir 在 Xcode 中。
-
你的版本也很奇怪。我在 mac os 10.12,远远落后于你,而 Xcode 9.2,远远落后于你,但我的 clang 是 Apple LLVM 版本 9.0.0,它领先于你。所以你的clang对于你正在做的事情来说已经很老了。这让我觉得你完全忘记了安装当前的命令行工具。转到开发人员站点并安装它们,然后进入 Xcode Locations pref 窗格并确保它们指向您的 Xcode。
标签: objective-c macos clang