linux下编写c++,include的那些头文件在什么地方

在linux下有众多的文件,而编写c++时经常要include一些头文件,那这些头文件是放在哪个文件夹下的
麻烦说的详细点,包括那些标准c++的头文件,以及非标准的
还有如果我有一些自己编好的,或是下载到的头文件,想以后编写时能直接include,那我这些文件应该放在哪个文件夹下
我的linux是ubuntu
谢谢
/usr/include/这些我也知道的,但是这个文件夹下还是有很多的文件和文件夹的,那到底哪些是用来放c++的那些头文件的

C/C++程序在linux下被编译和连接时,GCC/G++会查找系统默认的include和link的路径,以及自己在编译命令中指定的路径。

1、#include <stdio.h>,直接到系统指定目录去查找头文件。

系统默认路径为:/usr/include,/usr/local/include,/usr/lib/gcc-lib/i386-Linux/2.95.2/include(gcc库文件的路径,各个系统不一致)

2、#include "stidio.h",会先到当前目录查找头文件,如果没找到在到系统指定目录查找。

3、gcc编译时查找头文件,按照以下路径顺序查找:

gcc编译时,可以设置-I选项以指定头文件的搜索路径,如果指定多个路径,则按照顺序依次查找。比如,gcc -I /usr/local/include/node a.c  

gcc会查找环境变量C_INCLUDE_PATH,CPLUS_INCLUDE_PATH中指定的路径。

扩展资料:

应用程序代码编译过程:

编译器根据头文件提供的库函数接口形式,来编译代码,然后生成目标文件;然后,再使用链接器将这个目标文件与系统库链接;最终生成应用程序。代码包含了自己写的内容,还有系统提供好的现成的库函数,整个结合起来才形成一个完整的程序。

库函数的头文件,在编译的时候被使用,而库函数的代码段(库文件),在链接的时候被使用。

example:

应用程序代码在使用一个系统调用的时候,例如printf()函数,需要指定包含的头文件stdio.h;另外,在链接的时候对应的链接libc.a(笔者电脑文件所在目录:/usr/lib/i386-linux-gnu/libc.a)。

总结一下,编写应用程序,需要使用linux系统提供的库函数。具体实现起来,需要头文件和库文件。头文件是需要我们编写应用程序的时候,在源文件开头添加的;而库文件则需要配置编译环境进行指定搜索目录。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-14
C/C++程序在linux下被编译和连接时,GCC/G++会查找系统默认的include和link的路径,以及自己在编译命令中指定的路径。自己指定的路径就不说了,这里说明一下系统自动搜索的路径。

【1】include头文件路径
除了默认的/usr/include, /usr/local/include等include路径外,还可以通过设置环境变量来添加系统include的路径:
# C

export C_INCLUDE_PATH=XXXX:$C_INCLUDE_PATH

# CPP

export CPLUS_INCLUDE_PATH=XXX:$CPLUS_INCLUDE_PATH

以上修改可以直接命令行输入(一次性),可以在/etc/profile中完成(对所有用户生效),也可以在用户home目录下的.bashrc或.bash_profile中添加(针对某个用户生效),修改完后重新登录即生效。

【2】link链接库文件路径
链接库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的(也可以在编译命令中通过 -l -L 来指定,这里讲的是使用系统默认搜索路径)。
一般 Linux 系统把 /lib /usr/lib /usr/local/lib 作为默认的库搜索路径,所以使用这几个目录中的链接库文件可直接被搜索到(不需要专门指定链接库路径)。对于默认搜索路径之外的库,则需要将其所在路径添加到gcc/g++的搜索路径之中。
链接库文件的搜索路径指定有两种方式:1)修改/etc/so.ld.conf 2)修改环境变量,在其中添加自己的路径

1)在环境变量中添加
动态链接库搜索路径:

export LD_LIBRARY_PATH=XXX:$LD_LIBRARY_PATH
静态链接库搜索路径:
export LIBRARY_PATH=XXX:$LIBRARY_PATH
以上修改可以直接命令行输入(一次性),可以在/etc/profile中完成(对所有用户生效),也可以在用户home目录下的.bashrc或.bash_profile中添加(针对某个用户生效),修改完后重新登录即生效。

2)在/etc/ld.so.conf 中添加指定的链接库搜索路径(需要root权限),然后运行 /sbin/ldconfig,以达到刷新 /etc/ld.so.cache的效果。

以上两种方式均可以达到指定链接库搜索路径的效果。
第2个回答  推荐于2017-10-11
/usr/include/
这个目录下的文件大多是C 标准头文件
/usr/include/c++
这个下面就是C++标准头文件

你自己的头文件建议放在项目目录下 ,如果是通用库,那么在 /usr/include下面建立一个文件夹用来存放私有的的头文件, 通常我是在项目家目录下创建一个include目录 然后link到 /usr/include 下

/usr/include下的很多文件夹看文件夹名字就大概知道是哪方面的头文件了

比如 net protocols python2.x sys X11等本回答被提问者采纳
第3个回答  2009-06-14
这个还主要看你将的GCC在哪里,一般编程用的C++头文件,都在gcc目录下的include文件夹下。
第4个回答  2009-06-14
我的是puppy,C++标准库放在 /usr/include/c++ 文件夹

linux下编写c++,include的那些头文件在什么地方
C\/C++程序在linux下被编译和连接时,GCC\/G++会查找系统默认的include和link的路径,以及自己在编译命令中指定的路径。1、#include <stdio.h>,直接到系统指定目录去查找头文件。系统默认路径为:\/usr\/include,\/usr\/local\/include,\/usr\/lib\/gcc-lib\/i386-Linux\/2.95.2\/include(gcc库文件的路径,各...

linux下C语言的库函数的头文件放在哪个目录下啊?
一般来说是放在\/usr\/include目录下的;但是这个并不局限也是可控的,如果我们进行开发过程中, 就会在内核的库函数文件目录:例如在:\/XXX\/XXX\/linux-X.X\/include 所以根据不同的情况,头文件存放的目录也是不同的,具体需要可以根据locate和grep命令进行查询。

C++标准库头文件在哪个目录下?
C++标准库头文件,不同的编译器默认路径不相同。 Vc6.0一般在安装目录下的\\VC98\\INCLUDE目录,比如C:\\Program Files (x86)\\Microsoft Visual Studio\\VC98\\INCLUDE。 Vs一般在位于$VSPATH\\VC\\include路径下面。 gcc一般默认在 \/usr\/include目录下。

iostream.h 等C++头文件在Linux系统下的什么位置
所有的C++头文件不带.h include <iostream>;rpm包的安装是在\/usr\/include\/g++-v3下

linux怎么导入src目录和include目录
C\/C++程序在linux下被编译和连接时,GCC\/G++会查找系统默认的include和link的路径,以及自己在编译命令中指定的路径。自己指定的路径就不说了,这里说明一下系统自动搜索的路径。 【1】include头文件路径 除了默认的\/usr\/include, \/usr\/local\/in...

怎么在linux中编译与运行c++的原代码*.cpp文件
不是用make,是用g++,比如,你的文件名是test.cpp,所在的路径是\/home\/test\/test.cpp 你就在终端里输入:cd \/home\/test 然后输入g++ -o test test.cpp 就已经生成编译好的文件了。如果想看运行结果可以在终端输入 .\/test (还是在刚才的路径下输入)...

扩展c\/c++源文件中的#include指令什么意思
include <头文件>:采用"< >"方式进行包含的头文件表示让编译器在编译器的预设标准路径下去搜索相应的头文件。include "头文件":这种方式表示先在工程所在路径下搜索,如果失败,再到系统标准路径下搜索。4、以Linux平台的gcc为例,可以通过-E参考看到预处理的过程,一般来说预处理器处理完成的文件为.i...

在linux下用c++如何打开,创建一个文件,重要的是路径怎么表示,请举个具...
使用文本编辑器 就可以编写代码 在任何位置编写好文件后,保存,然后用g++编译文件.假设已经用文本编辑器编写了一个如下的 C++ 源文件(hello.C):include <iostream> int main (){ cout << "Hello, world!" << endl;} 则可以如下调用 g++ 命令编译、连接并生成可执行文件:g++ -o hello hello....

linux不能包含#include<iostream>头文件
linux能包含#include头文件。首先iostream是c++的头文件,需要找到linux下g++的头文件安装目录。linux是能包含#include头文件的,只是在正式的项目中,除非是要用到的库,否则不要冗余的去包含头文件。在某些实现版本中,每一个包含iostream的编译单元在启动(start-up)时都需要执行一段代码,虽然说负荷不...

linux下C++找不到头文件
wavefunction.o和.h不是一个概念,你搜索一下工程文件夹,看能否搜到wavefunction.h,搜到后把他和源代码的.cpp放到一起或者直接添加进当前工程里来,如果搜不到,那就是例子没给全,根本就是缺少文件,跟IDE没什么关系

相似回答