llvm/clang 编译处理exception的出错问题,求解

此余生安 2014-12-31 10:50:36
我是直接下载llvm的源码编译出来的clang,然后编写了一个简单的源程序,包含一些STL的简单操作,在使用该clang编译该程序时,出现了一些"cannot compile this try statement yet"的try、throw错误提示,但在vs下编译成功的,很是迷惑,希望各位能指点一下,谢谢。。
以下是出错的详细信息:



...全文
510 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyfanforsaken 2016-08-18
  • 打赏
  • 举报
回复
请问楼主这个问题后来具体如何解决的啊,是在VS里禁用异常,然后再拿CLANG去编译么?
此余生安 2015-01-05
  • 打赏
  • 举报
回复
引用 10 楼 ri_aje 的回复:
文档说的是 clang 在兼容 MSVC 的模式下工作的时候不支持异常,你把 "在兼容..." 的定语扔了,然后得出一个泛化的结论,自然是疑惑,clang 配合 g++ 或 llvm 的时候没什么问题,我在楼上的回帖都说了 n 遍了。 clang 从非 ms 的世界出生的,自然把 ms 的货视为二等公民,各方面支持都比较差,况且 vc 本身对标准支持就差,除此之外,还支持各种不标准的用法,属于典型的问题学生,clang 自然更懒的支持 ms 了,所以各方面开发进度都比其他的落后。
受教了,真心感谢 !
ri_aje 2015-01-05
  • 打赏
  • 举报
回复
引用 9 楼 anxiaosheng2 的回复:
[quote=引用 8 楼 ri_aje 的回复:] 恭喜,试了吗,管用吗?
应该是可以了,文档上说clang是不支持异常处理,所以在编译过程中需要禁用异常,虽然最后可以编译,但是我还是疑惑,clang不是号称比gcc还厉害的一个编译工具吗,所以,真心希望我理解有误[/quote] 文档说的是 clang 在兼容 MSVC 的模式下工作的时候不支持异常,你把 "在兼容..." 的定语扔了,然后得出一个泛化的结论,自然是疑惑,clang 配合 g++ 或 llvm 的时候没什么问题,我在楼上的回帖都说了 n 遍了。 clang 从非 ms 的世界出生的,自然把 ms 的货视为二等公民,各方面支持都比较差,况且 vc 本身对标准支持就差,除此之外,还支持各种不标准的用法,属于典型的问题学生,clang 自然更懒的支持 ms 了,所以各方面开发进度都比其他的落后。
ri_aje 2015-01-04
  • 打赏
  • 举报
回复
恭喜,试了吗,管用吗?
此余生安 2015-01-04
  • 打赏
  • 举报
回复
http://clang.llvm.org/docs/MSVCCompatibility.html 这篇文档吧,说得更详细点
此余生安 2015-01-04
  • 打赏
  • 举报
回复
引用 5 楼 ri_aje 的回复:
[quote=引用 4 楼 anxiaosheng2 的回复:] [quote=引用 1 楼 ri_aje 的回复:] 你这是用 clang 配合 vc 的 stl 吗?估计够呛,历来都是编译器自带 stl 实现的,客场的一般会水土不服的,除非编译器特殊设计过,比如 edg。既然用 llvm/clang,就老老实实的用 libc++ 吧。
不是的,用的还是vs下的stl[/quote] 说的就是 clang + vs stl 没法用,要用 clang 的话,就用 libc++ 或 libstdc++。 [/quote] 找到原因了:http://stackoverflow.com/questions/24197773/c-program-not-compiling-with-clang-and-visual-studio-2010-express
此余生安 2015-01-04
  • 打赏
  • 举报
回复
引用 8 楼 ri_aje 的回复:
恭喜,试了吗,管用吗?
应该是可以了,文档上说clang是不支持异常处理,所以在编译过程中需要禁用异常,虽然最后可以编译,但是我还是疑惑,clang不是号称比gcc还厉害的一个编译工具吗,所以,真心希望我理解有误
ri_aje 2015-01-01
  • 打赏
  • 举报
回复
引用 4 楼 anxiaosheng2 的回复:
[quote=引用 1 楼 ri_aje 的回复:] 你这是用 clang 配合 vc 的 stl 吗?估计够呛,历来都是编译器自带 stl 实现的,客场的一般会水土不服的,除非编译器特殊设计过,比如 edg。既然用 llvm/clang,就老老实实的用 libc++ 吧。
不是的,用的还是vs下的stl[/quote] 说的就是 clang + vs stl 没法用,要用 clang 的话,就用 libc++ 或 libstdc++。
此余生安 2014-12-31
  • 打赏
  • 举报
回复
引用 1 楼 ri_aje 的回复:
你这是用 clang 配合 vc 的 stl 吗?估计够呛,历来都是编译器自带 stl 实现的,客场的一般会水土不服的,除非编译器特殊设计过,比如 edg。既然用 llvm/clang,就老老实实的用 libc++ 吧。
不是的,用的还是vs下的stl
此余生安 2014-12-31
  • 打赏
  • 举报
回复
引用 楼主 anxiaosheng2 的回复:
我是直接下载llvm的源码编译出来的clang,然后编写了一个简单的源程序,包含一些STL的简单操作,在使用该clang编译该程序时,出现了一些"cannot compile this try statement yet"的try、throw错误提示,但在vs下编译成功的,很是迷惑,希望各位能指点一下,谢谢。。 以下是出错的详细信息:
不是的,用的还是VS的STL
ri_aje 2014-12-31
  • 打赏
  • 举报
回复
补充一句,libstdc++ 应该也没问题,clang 号称兼容 g++ 的。
ri_aje 2014-12-31
  • 打赏
  • 举报
回复
你这是用 clang 配合 vc 的 stl 吗?估计够呛,历来都是编译器自带 stl 实现的,客场的一般会水土不服的,除非编译器特殊设计过,比如 edg。既然用 llvm/clang,就老老实实的用 libc++ 吧。

24,855

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧