2KB项目,专业的源码交易网站 帮助 收藏 每日签到

clang-cl /fallback 模式

  • 时间:2019-01-23 18:38 编辑:2KB 来源:2KB.COM 阅读:377
  • 扫一扫,手机访问
  • 分享
摘要:
clang LLVM 英文原文:The clang-cl /fallback mode

最近在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实现项目了.

大多数情况下, 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;
}
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这个文件上.

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

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

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


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部