公司动态
fatal error: ‘type_traits‘ file not found
使用Clang编译代码时报如上所述的错误原因是Clang只是一个“前端编译器”它不自带完整的底层运行时库和启动代码在Linux平台上必须依赖GCC的工具链来完成最终的程序生成。Clang驱动会扫描/usr/lib/gcc/x86_64-linux-gnu/目录下的所有子目录如11、12并选择一个最新的版本因此clang -v -x c /dev/null -o /dev/null的输出可以看到... Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/12 Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/12...基于选中的版本12Clang会去/usr/include/c/12搜索type_traits文件但找不到因为在某些系统中没有安装版本12的开发头文件包libstdc-12-dev所以/usr/include/c/12目录根本不存在。虽然/usr/include/c/11和/usr/include/c/11/type_traits都存在但由于Clang选中的版本是12因此就不会去/usr/include/c/11中搜索type_traits文件综上所述解决这个编译报错的方法是sudo apt install libstdc-12-dev。