我想用终端上的Sublime和clang编写一些代码.如何在clang中使用新模块(@import)语法?我尝试添加-fmodules标志,但它不起作用.启用模块后,我是否也可以省略-framework Foundation标志? clang -fmodule
clang -fmodules -framework Foundation test.mm; ./a.out
小测试文件:
#import <stdio.h> // #import <Foundation/Foundation.h> @import Foundation; /* clang -fmodules -framework Foundation test.mm; ./a.out */ int main(int argc, char const *argv[]) { NSString *hello = @"Hello"; printf("%s\n", "hello world"); return 0; }您的输入文件是Objective-C(来自.mm扩展名),但模块还没有为C做好准备.有一个单独的标志,-fcxx-modules,但即使你使用它,你很可能会失败.要使用模块,您现在必须坚持使用C和Objective-C.
对于C和Objective-C,这应该适用于Xcode 5和OS X 10.9中的clang.
@import Foundation; int main() { NSString *hello = @"Hello"; NSLog(@"%@", hello); } ⑆ clang -v Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn) Target: x86_64-apple-darwin13.0.0 Thread model: posix ⑆ clang -fmodules main.m && ./a.out 2013-11-20 08:51:37.638 a.out[51425:507] Hello