linux下c++include的那些文件来自哪里

来源:百度知道 编辑:UC知道 时间:2024/06/09 07:21:41
/usr/include文件夹下有众多的头文件,编写c++时经常要include一些头文件,程序连接头文件时是不是在include文件夹的下面的所有文件中寻找
有没有人给我讲讲这些运行的机制

1.来源一般有两种方式:一,来自linux系统本身,你如果使用linux系统调用,那么就直接linux路径下系统调用里的include目录的头文件。二,你自定义头文件,把函数和全局变量的声明放在头文件里,源文件里要引用这些头头文件

编译C++时include的那些头文件是由编译器决定路径及寻找顺序的,/usr/include这种肯定在编译器寻找的路径内。如果不在编译器指定路径内,则需要手动使用-I选项指定头文件路径
程序只是在编译时需要用到这些头文件,链接时直接链接dll,需要用-l选项指定需要链接哪些.so文件,指定链接文件名时省略前面的lib与后面的.so,比如链接libparted.so(这是一个与磁盘分区相关的共享库)应该写为 -lparted。
例子:
g++ test.cpp -I/home/ -ldl -o test
是指编译test.cpp源程序,这个源程序include进来的头文件可以先去/home/文件夹下查找,如果没有再去系统路径(就是你前面说的/usr/include这样的)下查找。链接阶段请链接上libdl.so这个共享库,最后生成的可执行文件叫test

编译器有个include目录,它会在这个目录下搜寻。

gcc有个-I选项可以指定另外的搜寻目录,
gcc -I /usr/include

/usr/include/c++