Ios 使用@import from clang?

Ios 使用@import from clang?,ios,clang,Ios,Clang,我想在终端上用崇高和铿锵的声音写一些代码。如何将新模块(@import)语法与clang一起使用?我尝试添加-fmodules标志,但没有成功。通过启用模块,我也可以省略框架基础标志? 小测试文件: #import <stdio.h> // #import <Foundation/Foundation.h> @import Foundation; /* clang -fmodules -framework Foundation test.mm; ./a.out *

我想在终端上用崇高和铿锵的声音写一些代码。如何将新模块(@import)语法与clang一起使用?我尝试添加-fmodules标志,但没有成功。通过启用模块,我也可以省略框架基础标志? 小测试文件:

#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;
}
#导入
//#进口
@进口基金会;
/*
框架模块基础试验。a、 出去
*/
int main(int argc,char const*argv[]
{
NSString*hello=@“hello”;
printf(“%s\n”、“你好世界”);
返回0;
}

<>代码> 你的输入文件是Objto-C++(从.mm扩展名),但是模块还没有准备好C++。有一个单独的标志,-fcxx模块,但即使使用它,也可能会出现故障。要使用模块,您现在必须坚持使用C和Objective-C

在Xcode 5和OS X 10.9上,这对于C和Objective-C来说应该可以很好地工作

@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

您使用的是什么版本的clang和OS X?这些框架必须模块化(也就是说,它们必须包含module.map),这是在OSX10.9中完成的,而不是更早的版本。我相信你应该能够省略
-framework
标志。。。苹果LLVM版本5.0(clang-500.2.75)(基于LLVM 3.3svn)我不明白为什么这是一个问题。你自己试试看。如果链接正确,那么显然可以省略显式链接步骤。如果您认为命令中可能有一个新组件,您也可以查看Xcode关于使用模块构建和自动链接的语句。这是一个问题,因为我尝试了它,但它不起作用。它无法识别@import.Nice catch!我最初做了一些C++,只是重新使用我的标准文件名。我还有一个旧版本的编译器*.75,它不工作。我在应用商店升级了IB,得到了*.79,现在可以使用了。谢谢
@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