当前位置 : 主页 > 手机开发 > ios >

ios – 使用来自clang的@import?

来源:互联网 收集:自由互联 发布时间:2021-06-11
我想用终端上的Sublime和clang编写一些代码.如何在clang中使用新模块(@import)语法?我尝试添加-fmodules标志,但它不起作用.启用模块后,我是否也可以省略-framework Foundation标志? clang -fmodule
我想用终端上的Sublime和clang编写一些代码.如何在clang中使用新模块(@import)语法?我尝试添加-fmodules标志,但它不起作用.启用模块后,我是否也可以省略-framework Foundation标志?

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
网友评论