如何解决Clang CL 和 MSVC CL 的区别
clang-cl 可以直接替代 MSVC 的 CL。
有谁知道如何区分我的代码当前是由 clang-cl 还是 msvc 的 cl 编译的?无需在命令行上传递任何额外定义的宏。
使用
rustup component add rust-src
不起作用,两个编译器都定义了 _MSC_VER。
同样在 Linux(Windows 上)的常规 CLang 中,也可以执行 #ifdef _MSC_VER
//.....
#endif
转储所有定义的宏。但是,就我所知,clang-cl 和 msvc-cl 都没有这样的选项来转储所有定义的宏,所以我不知道有什么方法可以查看两个编译器的已定义宏列表的差异以找出使用哪个宏来区分这些编译器。
解决方法
您要查找的宏是 __clang__
。
请注意,常规 Clang(不仅是 Clang-CL)也定义了它,因此您要同时检查 __clang__
和 _MSC_VER
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。