MacOS - Clang使用bits/stdc++.h - 非官方(竞赛用) - 通用方法
MacOS - Clang使用bits/stdc++.h - 非官方(竞赛用) - 通用方法
前言
Windows和MacOS双用户,Windows上cpp打竞赛/刷题时使用bits/stdc++.h
确实方便,毕竟不是实际项目的开发。
但MacOS的默认clang不包含bits/stdc++.h
头文件,检索、github多星仓库的方法都不通用,故写此文已记之。
并且每次mac更新了developer kit之后,之前手动添加的bits/stdc++.h
头文件都会失效,需要重新添加。
原理
不论是编译过程中还是在IDE的语法检测过程中,(若无指定特殊参数)都是会去默认库文件路径下查找目标头文件。
而clang默认没有bits/stdc++.h
这个头文件,所以没办法#include <bits/stdc++.h>
。
所以直接新建个这个文件,放到库文件目录下就好了。
方法
网上clang库文件的位置都是一个固定路径,不同版本的MacOS(如最近新出的MacOS26)路径也不同。
如何确定clang默认库文件的位置?两个方法吧
方法一:IDE中获取
如果你使用IDE(大概率),如VsCode,直接随便创建个cpp文件,如:
1 |
|
然后鼠标在iostream
上Command+单击鼠标左键
就好。
这样VsCode就会打开iostream
这个文件,这个文件所在路径就是clang库文件的默认路径。(如:/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/
)
方法二:使用clang命令
MacOS上打开终端
,输入命令clang -E -x c++ - -v < /dev/null
,可以看到输出中包含如下内容:
1 |
|
看到没,#include <...> search starts here:
,也就是说#include <xxx>
的时候是从这些路径下开始搜索头文件的。
随便选一个(如第一个的/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/
即可)。
最后的头文件添加
在上一步找到的库文件默认路径下新建文件夹bits
,并将stdc++.h
放入这个文件夹下就好了。
至于stdc++.h
这个文件怎么来?可以在Windows上复制(maybe),也可以使用Github上的这个。
End
同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~
千篇源码题解已开源