一、背景
在调试C++程序的过程中,#include <bits/stdc++.h>报错说无奈援用。这让我十分好奇,为什么间接引入<iostream>能够,然而<bits/stdc++.h>不行呢?
二、调试过程
1、看看为什么能间接引入iostream
右键头文件中的<iostream>,点击Go to Definition关上iostream
能够看到iostream在我的电脑里被放在了/Library/Developer/CommandLineTools/usr/include/c++/v1/iostream下。
也能够右键iostream,抉择在文件夹中显示:
咱们能够看到在这个门路下,除了iostream,还有好多其余头文件的定义,vs code头文件引入就是在这个门路下查找的。
2、新建bits/stdc++.h
那么我猜测,是不是在这个门路下新建一个bits/stdc++.h,程序就不会报错了呢?
在/Library/Developer/CommandLineTools/usr/include/c++/v1/目录下新建一个bits文件夹,而后在此文件夹下新建一个stdc++.h
从github上找到bits/stdc++.h的内容:https://gist.github.com/Einst...,复制粘贴到外面。
而后从新回到要调试的程序中,debug c/c++,发现程序能够运行,撒花!!!
三、总结
遇到头文件不存在时,先查看编译器/IDE是从哪个目录援用的头文件,而后在此目录下补充缺失的头文件即可。