1. linux下编写c++,include的那些头文件在什么地方
这个还主要看你将的GCC在哪里,一般编程用的C++头文件,都在gcc目录下的include文件夹下。
2. 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库文件的路径,各个系统不一致)
2、#include "stidio.h",会先到当前目录查找头文件,如果没找到在到系统指定目录查找。
3、gcc编译时查找头文件,按照以下路径顺序查找:
gcc编译时,可以设置-I选项以指定头文件的搜索路径,如果指定多个路径,则按照顺序依次查找。比如,gcc -I /usr/local/include/node a.c
gcc会查找环境变量C_INCLUDE_PATH,CPLUS_INCLUDE_PATH中指定的路径。
(2)linux网络编程头文件扩展阅读:
应用程序代码编译过程:
编译器根据头文件提供的库函数接口形式,来编译代码,然后生成目标文件;然后,再使用链接器将这个目标文件与系统库链接;最终生成应用程序。代码包含了自己写的内容,还有系统提供好的现成的库函数,整个结合起来才形成一个完整的程序。
库函数的头文件,在编译的时候被使用,而库函数的代码段(库文件),在链接的时候被使用。
example:
应用程序代码在使用一个系统调用的时候,例如printf()函数,需要指定包含的头文件stdio.h;另外,在链接的时候对应的链接libc.a(笔者电脑文件所在目录:/usr/lib/i386-linux-gnu/libc.a)。
总结一下,编写应用程序,需要使用linux系统提供的库函数。具体实现起来,需要头文件和库文件。头文件是需要我们编写应用程序的时候,在源文件开头添加的;而库文件则需要配置编译环境进行指定搜索目录。
3. windows与linux 头文件对照
1.linux和windows平台下,能够对应的头文件就是符合C11标准的头文件。其他的头文件不仅和平台有关系,还和平台下的编译环境有关,很难画上等号的。
2.C语言符合标准的头文件
#include <assert.h> //设定插入点
#include <ctype.h> //字符处理
#include <errno.h> //定义错误码
#include <float.h> //浮点数处理
#include <fstream.h> //文件输入/输出
#include <iomanip.h> //参数化输入/输出
#include <iostream.h> //数据流输入/输出
#include <limits.h> //定义各种数据类型最值常量
#include <locale.h> //定义本地化函数
#include <math.h> //定义数学函数
#include <stdio.h> //定义输入/输出函数
#include <stdlib.h> //定义杂项函数及内存分配函数
#include <string.h> //字符串处理
#include <strstrea.h> //基于数组的输入/输出
#include <time.h> //定义关于时间的函数
#include <wchar.h> //宽字符处理及输入/输出
#include <wctype.h> //宽字符分类
3.linux常用头文件如下:
POSIX标准定义的头文件
<dirent.h> 目录项
<fcntl.h> 文件控制
<fnmatch.h> 文件名匹配类型
<glob.h> 路径名模式匹配类型
<grp.h> 组文件
<netdb.h> 网络数据库操作
<pwd.h> 口令文件
<regex.h> 正则表达式
<tar.h> TAR归档值
<termios.h> 终端I/O
<unistd.h> 符号常量
<utime.h> 文件时间
<wordexp.h> 字符扩展类型
-------------------------
<arpa/inet.h> INTERNET定义
<net/if.h> 套接字本地接口
<netinet/in.h> INTERNET地址族
<netinet/tcp.h> 传输控制协议定义
-------------------------
<sys/mman.h> 内存管理声明
<sys/select.h> Select函数
<sys/socket.h> 套接字借口
<sys/stat.h> 文件状态
<sys/times.h> 进程时间
<sys/types.h> 基本系统数据类型
<sys/un.h> UNIX域套接字定义
<sys/utsname.h> 系统名
<sys/wait.h> 进程控制
------------------------------
POSIX定义的XSI扩展头文件
<cpio.h> cpio归档值
<dlfcn.h> 动态链接
<fmtmsg.h> 消息显示结构
<ftw.h> 文件树漫游
<iconv.h> 代码集转换使用程序
<langinfo.h> 语言信息常量
<libgen.h> 模式匹配函数定义
<monetary.h> 货币类型
<ndbm.h> 数据库操作
<nl_types.h> 消息类别
<poll.h> 轮询函数
<search.h> 搜索表
<strings.h> 字符串操作
<syslog.h> 系统出错日志记录
<ucontext.h> 用户上下文
<ulimit.h> 用户限制
<utmpx.h> 用户帐户数据库
-----------------------------
<sys/ipc.h> IPC(命名管道)
<sys/msg.h> 消息队列
<sys/resource.h>资源操作
<sys/sem.h> 信号量
<sys/shm.h> 共享存储
<sys/statvfs.h> 文件系统信息
<sys/time.h> 时间类型
<sys/timeb.h> 附加的日期和时间定义
<sys/uio.h> 矢量I/O操作
------------------------------
POSIX定义的可选头文件
<aio.h> 异步I/O
<mqueue.h> 消息队列
<pthread.h> 线程
<sched.h> 执行调度
<semaphore.h> 信号量
<spawn.h> 实时spawn接口
<stropts.h> XSI STREAMS接口
<trace.h> 事件跟踪
4. Linux下C编程头文件
你在mymin.c文件中调用printf函数
前提在你mymin.c文件头包含了其他的文件而这个文件里有包含stdio.h文件
那你在mymin.c文件里可以不包含stdio.h文件
看了下你文件的编写
还是不合规范
帮你改下:
/*ex_min.h*/
#ifndef
_ex_min_h
#define
_ex_min_h
#include<stdio.h>
int
min(int
n1,int
n2);
#endif
/*ex_min.c*/
#include
"ex_min.h"
int
min(int
n1,int
n2)
{
printf("调用min\n");
if(n1>n2)
return
n1;
else
return
n2;
}
/*mymin.c*/
#include
"ex_min.h"
int
main()
{
int
n1,n2,n3;
scanf("%d,%d",&n1,&n2);
n3=min(n1,n2);
printf("%d",n3);
}
5. linux查看包含的头文件源文件
linux下的内核头文件放在/usr/include/linux/和/usr/include/sys/linux目录树:scripts目录该目录中不包含任何核心代码,该目录下存放了用来配置内核的脚本和应用程序源码。lib目录该目录主要包含两部分内容:gnuzip解压缩算法,用于在系统启动过程中将压缩的内核镜像解压缩;剩余的文件用于实现一个C库的子集,主要包括字符串和内存操作等相关函数。mm目录该目录包含了体系结构无关的内存管理代码,包括通用的分页模型的框架、伙伴算法的实现和对象缓冲器slab的实现代码。include目录这个目录包含了Linux源代码目录树中绝大部分头文件,每个体系架构都在该目录下对应一个子目录,该子目录中包含了给定体系结构所必需的宏定义和内联函数。init目录该目录中存放的是系统核心初始化代码,内核初始化入口函数start_kernel就是在该目录中的文件main.c内实现的。kernel目录该目录中存放的是Linux内核的最核心的代码,用于实现系统的核心模块,这些模块包括:进程管理、进程调度器、中断处理、系统时钟管理、同步机制等。arch目录该目录中的每个子目录中都与某种体系结构相对应,用于存放体系结构相关代码,向平台无关的系统核心模块提供所需的功能接口。每个体系结构对应的子目录下通常至少包含以下几个子目录:kernel子目录、lib子目录、mm子目录、boot子目录。系统次核心组件包括:block目录:用于实现块设备的基本框架和块设备的I/O调度算法。usr目录:该目录中的代码为内核尚未完全启动时执行用户空间代码提供了支持ipc目录:该目录中的文件用于实现SystemV的进程间通信模块。driver目录:用于存放各类设备的驱动程序。sound目录:存放了声音系统架构,如OpenSoundSystem(OSS)、(ALSA)的相关代码和具体声卡的设备驱动程序。security目录:存放了Security-EnhancedLinux(SELinux)安全框架的实现代码crypto目录:该目录中存放了相关的加密算法的代码。Documentation目录:存放了与内核相关的文档。net和fs目录:包含linux内核支持的众多网络协议和文件系统。
6. linux下编写c++,include的那些头文件在什么地方
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的效果。
以上两种方式均可以达到指定链接库搜索路径的效果。
7. linux C语言的头文件对应Windows下的头文件是哪些
linux和windows平台下,能够对应的头文件就是符合C11标准的头文件。其他的头文件不仅和平台有关系,还和平台下的编译环境有关,很难画上等号的。
C语言符合标准的头文件.
#include <assert.h> //设定插入点
#include <ctype.h> //字符处理
#include <errno.h> //定义错误码
#include <float.h> //浮点数处理
#include <fstream.h> //文件输入/输出
#include <iomanip.h> //参数化输入/输出
#include <iostream.h> //数据流输入/输出
#include <limits.h> //定义各种数据类型最值常量
#include <locale.h> //定义本地化函数
#include <math.h> //定义数学函数
#include <stdio.h> //定义输入/输出函数
#include <stdlib.h> //定义杂项函数及内存分配函数
#include <string.h> //字符串处理
#include <strstrea.h> //基于数组的输入/输出
#include <time.h> //定义关于时间的函数
#include <wchar.h> //宽字符处理及输入/输出
#include <wctype.h> //宽字符分类
linux常用头文件如下:
POSIX标准定义的头文件
<dirent.h> 目录项
<fcntl.h> 文件控制
<fnmatch.h> 文件名匹配类型
<glob.h> 路径名模式匹配类型
<grp.h> 组文件
<netdb.h> 网络数据库操作
<pwd.h> 口令文件
<regex.h> 正则表达式
<tar.h> TAR归档值
<termios.h> 终端I/O
<unistd.h> 符号常量
<utime.h> 文件时间
<wordexp.h> 字符扩展类型
-------------------------
<arpa/inet.h> INTERNET定义
<net/if.h> 套接字本地接口
<netinet/in.h> INTERNET地址族
<netinet/tcp.h> 传输控制协议定义
-------------------------
<sys/mman.h> 内存管理声明
<sys/select.h> Select函数
<sys/socket.h> 套接字借口
<sys/stat.h> 文件状态
<sys/times.h> 进程时间
<sys/types.h> 基本系统数据类型
<sys/un.h> UNIX域套接字定义
<sys/utsname.h> 系统名
<sys/wait.h> 进程控制
------------------------------
POSIX定义的XSI扩展头文件
<cpio.h> cpio归档值
<dlfcn.h> 动态链接
<fmtmsg.h> 消息显示结构
<ftw.h> 文件树漫游
<iconv.h> 代码集转换使用程序
<langinfo.h> 语言信息常量
<libgen.h> 模式匹配函数定义
<monetary.h> 货币类型
<ndbm.h> 数据库操作
<nl_types.h> 消息类别
<poll.h> 轮询函数
<search.h> 搜索表
<strings.h> 字符串操作
<syslog.h> 系统出错日志记录
<ucontext.h> 用户上下文
<ulimit.h> 用户限制
<utmpx.h> 用户帐户数据库
-----------------------------
<sys/ipc.h> IPC(命名管道)
<sys/msg.h> 消息队列
<sys/resource.h>资源操作
<sys/sem.h> 信号量
<sys/shm.h> 共享存储
<sys/statvfs.h> 文件系统信息
<sys/time.h> 时间类型
<sys/timeb.h> 附加的日期和时间定义
<sys/uio.h> 矢量I/O操作
------------------------------
POSIX定义的可选头文件
<aio.h> 异步I/O
<mqueue.h> 消息队列
<pthread.h> 线程
<sched.h> 执行调度
<semaphore.h> 信号量
<spawn.h> 实时spawn接口
<stropts.h> XSI STREAMS接口
<trace.h> 事件跟踪
8. linux下,C语言头文件在哪
一、 C标准库头文件,以及Linux的标准库文件的对应头文件,默认放在/usr/include下。 如图:
标识出回了最常用的几答个头文件。
二、 自定义头文件,或者集成头文件,需要在编译的时候指定。可以在命令行中指定,也可以在makefile中指定。
指定自定义头文件路径方式为:
-IPATH1 -IPATH2...
如当前目录下的inc文件夹,指定为头文件, 那么在编译a.c时,可以命令写作:
gcc a.c -I./inc -o a.out
9. Linux编程中带有<linux/mole.h>头文件该怎么写Makefile
你应该用的gcc编译器吧?
考虑一下编译选项:
-l -L
你要写makefile,一样考虑上面的两个选项。
我看你使用的那些库不是你自己写的,那只能说明编译的时候,要制定头文件与库文件的位置。