clang-cl /fallback 模式 已翻译 100%

oschina 投递于 2013/11/06 08:25 (共 4 段, 翻译完成于 11-21)
阅读 3462
收藏 12
0
加载中

最近在Windows平台出现了很多的 LLVM工具 (参见 Windows下的LLVM工具链先锋). 这导致了一种新的Clang驱动模式: clang-cl 的产生. 这种方式可以使Clang能用Visual Studio的编译器,像cl.exe来编译程序。举个例子, 一个典型的Clang编译命令行指令为"clang hello.cc -o hello", 现在我们用cl.exe的命令好语法来编译,使用"cl.exe hello.cc /Fehello". 这样我们可以用 "cl.exe" 的指令来编译"clang-cl"的程序. 这会易于Clang在Visual Studio实现项目了.

围观
翻译于 2013/11/21 16:24
1

大多数情况下, clang-cl的参数跟cl.exe都是一致的. 然而, 他也接受Clang的一些特定选项. 最近加入了/fallback标记. 这个标记的目的是为了编译一些Clang不能编译的代码。下面将给出例子如何使用 /fallback 标记.

clang-cl工作在 /fallback模式下是首次尝试编译Clang的代码,如果失败,出于某种原因,它会使用cl.exe来尝试编译.参照一下两个文件,main.cpp可以通过编译,printer.cpp编译不能通过:
printer.cpp:

#include <iostream>
void print_hello(const char *s) {
  std::cout << "Hello from " << s << "!" << std::endl;
}
main.cpp:

extern void print_hello(const char*);
int main(int argc, char **argv) {
  print_hello(argv[0]);
  return 0;
}
围观
翻译于 2013/11/21 16:32
1
clang-cl 不能编译 printer.cpp因为它引用了iostream,但iostream使用了一个不能完全支持的语言特性(希望他们赶紧被支持)。 clang-cl 依然可以使用 / fallback 模式来编译这两个文件:
clang-cl /fallback /Fehello main.cpp printer.cpp

Clang会成功编译main.cpp,打印一些关于他不支持printer.cpp的错误信息, 并回退到cl.exe来编译这个文件.编译完成的文件会被连接到hello.exe这个文件上.

围观
翻译于 2013/11/21 16:38
1

注意: 即使clang-cl认为它编译成功了一个文件,也很有可能在编译完成的代码在运行时会导致一些bug或 failure的产生.

到现在, /fallback 模式可能会导致clang-cl 产生各种错误问题。将来,它将改善到会导致一些内部错误,随着Windows对Clang的支持的加深,/fallback 就可以不必要使用甚至可以永久的从规范中删除了。clang-cl仍处于初级阶段, 但你可以自己尝试从LLVM快速构建站点下载到它的工具链。

围观
翻译于 2013/11/21 16:45
1
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(7)

crossmix
crossmix
En la mayoria de los
crossmix
crossmix
ok
我怀疑你有问题
我怀疑你有问题
http://my.oschina.net/GIIoOS/blog/165542
clang --driver-mode=cl -D_HAS_EXCEPTIONS=0 /GR- file.cpp
红薯
红薯

引用来自“围观”的评论

引用来自“红薯”的评论

引用来自“围观”的评论

@红薯 第四段我不是故意的啊,点了没反应,点了好多次才这样的,应该有个最后提交生效吧,郁闷了,这ajax失效了啊!

哈哈,没关系的,搞定了

Debugging PhoneGap Apps with the Chrome Dev Tools 这个一直进不去,always 404呢 http://www.oschina.net/translate/phonegapcordova-is-really-cool

现在可以了,早上重复提交删除了一篇
围观
围观

引用来自“红薯”的评论

引用来自“围观”的评论

@红薯 第四段我不是故意的啊,点了没反应,点了好多次才这样的,应该有个最后提交生效吧,郁闷了,这ajax失效了啊!

哈哈,没关系的,搞定了

Debugging PhoneGap Apps with the Chrome Dev Tools 这个一直进不去,always 404呢 http://www.oschina.net/translate/phonegapcordova-is-really-cool
红薯
红薯

引用来自“围观”的评论

@红薯 第四段我不是故意的啊,点了没反应,点了好多次才这样的,应该有个最后提交生效吧,郁闷了,这ajax失效了啊!

哈哈,没关系的,搞定了
围观
围观
@红薯 第四段我不是故意的啊,点了没反应,点了好多次才这样的,应该有个最后提交生效吧,郁闷了,这ajax失效了啊!
返回顶部
顶部