user-0 提问: gcc搜索路径的字符串是记录在哪里的？

回复:
user: user-1
content: 印象里应该是父进程修改自己的环境或新建环境变量加入自己的环境，然后调用子进程并把自己的环境遗传给它。

user: user-1
content: 我个人对环境变量并无深入学习。对于如何查看特定进程的环境变量我一无所知。 但是我知道环境变量并不都是全局的，另开一个进程查看环境变量应该不能看到特定进程的全部环境变量。 例如 早期动态网页的接口CGI就是靠环境变量工作的，如果环境变量都是全局的，那CGI就乱套了。

user: user-2
content: 一、双引号和尖括号引用头文件的区别 对于双引号和尖括号包含的头文件的搜索方式有细微差别， 前者的搜索路径选择先后为：使用#include的文件所在的当前路径，-I指定的路径，环境变量C_INCLUDE_PATH或CPLUS_INCLUDE_PATH包含的路径，内定路径； 而后者就只有三种，依次是-I指定的路径，环境变量C_INCLUDE_PATH或CPLUS_INCLUDE_PATH包含的路径，内定路径。  着重介绍后者的那三种选择： ●-I参数指定的路径； ●环境变量C_INCLUDE_PATH或CPLUS_INCLUDE_PATH包含的路径； ●内定路径。 前两种可由我们自己指定哪些路径，第三种是gcc内置的，用户改变不了。  二、-I参数指定的路径 -I参数的用法为gcc <filename> -I <pathname_1> -I <pathname_2>，-I后边只能紧跟一个路径名，想要手动指定几个头文件搜索路径，就得写几个-I。 gcc hello.c -I ~/mydir1 -I ~/mydir2  三、环境变量C_INCLUDE_PATH或CPLUS_INCLUDE_PATH包含的路径 gcc在搜索完-I参数指定路径后，便会查看环境变量C_INCLUDE_PATH或CPLUS_INCLUDE_PATH包含的路径， 这两个环境变量都是路径的集合，我们可以手动往这两个环境变量里添加路径。  以C_INCLUDE_PATH为例，添加路径有两种方法，如果该新增路径只是临时需要，则可以在命令行输入 echo C_INCLUDE_PATH=$C_INCLUDE_PATH:<pathname> 如果是长期需要，则应在~/.bashrc或/etc/profile添加export C_INCLUDE_PATH=$C_INCLUDE_PATH:<pathname> 然后保存并退出文件，在命令行中执行命令source ~/.bashrc或source /etc/profile。  四、内定路径 第三种的内定路径无法更改，但可以查看，如何查看呢？ 可先随便写一个C文件，然后在命令行执行命令gcc <filename> -v 以显示整个编译过程。显示内容有一行是#include <...> search starts here:， mingw64(gcc-10.2.0)\bin\../lib/gcc/x86_64-w64-mingw32/10.2.0/include mingw64(gcc-10.2.0)\bin\../lib/gcc/x86_64-w64-mingw32/10.2.0/include-fixed mingw64(gcc-10.2.0)\bin\../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/include

user: user-2
content: 环境变量C_INCLUDE_PATH、CPLUS_INCLUDE_PATH是指linux内的环境变量吗？Windows MINGW环境应该是没有的吧？--->这个可以自己添加设置Windows的环境变量，我在用MinGW-w64配置C++ Boost库时使用过，是有效的

user: user-0
content: 引用 11 楼 Intel0011 的回复:一、双引号和尖括号引用头文件的区别 对于双引号和尖括号包含的头文件的搜索方式有细微差别， 前者的搜索路径选择先后为：使用#include的文件所在的当前路径，-I指定的路径，环境变量C_INCLUDE_PATH或CPLUS_INCLUDE_PATH包含的路径，内定路径； 而后者就只有三种，依次是-I指定的路径，环境变量C_INCLUDE_PATH或CPLUS_INCLUDE_PATH包含的路径，内定路径。  着重介绍后者的那三种选择： ●-I参数指定的路径； ●环境变量C_INCLUDE_PATH或CPLUS_INCLUDE_PATH包含的路径； ●内定路径。 前两种可由我们自己指定哪些路径，第三种是gcc内置的，用户改变不了。  二、-I参数指定的路径 -I参数的用法为gcc <filename> -I <pathname_1> -I <pathname_2>，-I后边只能紧跟一个路径名，想要手动指定几个头文件搜索路径，就得写几个-I。 gcc hello.c -I ~/mydir1 -I ~/mydir2  三、环境变量C_INCLUDE_PATH或CPLUS_INCLUDE_PATH包含的路径 gcc在搜索完-I参数指定路径后，便会查看环境变量C_INCLUDE_PATH或CPLUS_INCLUDE_PATH包含的路径， 这两个环境变量都是路径的集合，我们可以手动往这两个环境变量里添加路径。  以C_INCLUDE_PATH为例，添加路径有两种方法，如果该新增路径只是临时需要，则可以在命令行输入 echo C_INCLUDE_PATH=$C_INCLUDE_PATH:<pathname> 如果是长期需要，则应在~/.bashrc或/etc/profile添加export C_INCLUDE_PATH=$C_INCLUDE_PATH:<pathname> 然后保存并退出文件，在命令行中执行命令source ~/.bashrc或source /etc/profile。  四、内定路径 第三种的内定路径无法更改，但可以查看，如何查看呢？ 可先随便写一个C文件，然后在命令行执行命令gcc <filename> -v 以显示整个编译过程。显示内容有一行是#include <...> search starts here:， mingw64(gcc-10.2.0)\bin\../lib/gcc/x86_64-w64-mingw32/10.2.0/include mingw64(gcc-10.2.0)\bin\../lib/gcc/x86_64-w64-mingw32/10.2.0/include-fixed mingw64(gcc-10.2.0)\bin\../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/include   还是老哥你给力  环境变量C_INCLUDE_PATH、CPLUS_INCLUDE_PATH是指linux内的环境变量吗？Windows MINGW环境应该是没有的吧？

user: user-3
content: 应该是命令行吧

user: user-4
content: 搜索的头文件和库路径是由配置决定的。windows下也有配置的地方。  Linux下也是有配置系统的路径，比如/usr/include/   #头文件 /lib/   #库  建议搜一下头文件和库配置路径的地方～

user: user-0
content: 引用 3 楼 forever74 的回复:当然了，环境变量也是有来源的，脚本或注册表都有可能。 但是修改过来源以后往往需要重启系统才好看到环境变量的改变。 你确定是在Windows环境吗？

user: user-0
content: 引用 1 楼 user-7 的回复:环境变量 C_INCLIDE_PATH MINGW，Windows环境，我没找到该环境变量

user: user-5
content: 下载mingw的源码看一下就知道了

user: user-6
content: 供参考：https://blog.csdn.net/qinglinsan/article/details/11478091 http://www.360doc.com/content/16/0928/00/7991404_594388737.shtml

user: user-1
content: 当然了，环境变量也是有来源的，脚本或注册表都有可能。 但是修改过来源以后往往需要重启系统才好看到环境变量的改变。

user: user-1
content: 环境变量了解一下？

user: user-7
content: 环境变量 C_INCLIDE_PATH