Cas*_*sey 32
从技术上讲,这两个程序都没有命名clang或者clang++是编译器:它们都是分析输入参数的驱动程序,并确定哪些编译器/汇编程序/链接器使用什么命令行参数调用哪些文件.两者之间的唯一区别是,clang如果它执行链接,则仅针对C标准库的链接,而clang++针对C++和C标准库的链接.
该-x=<language>选项会覆盖驱动程序的启发式方法以确定源文件语言,它会指示驱动程序<language>无论如何都要调用编译器.
该-std=<dialect>选项选择您要使用的特定语言的方言.如果您需要确保您的C++程序可以移植到旧的C++ 98编译器,您可以使用它编译它-std=c++98.-std仅适用于目标语言:它不会尝试编译汇编程序或java作为C++ 98,只有驱动程序认为是C++的源文件.
简而言之,有两种不同的驱动程序可以轻松选择要链接的库.有合理的用例来编译C++但不能链接到C++标准库.