位置: 编程技术 - 正文
为什么要包含头文件而不是.c文件
测试代码:
编译:
In file included from m.c:1:0:t.c: 在函数‘test'中:t.c:3:2: 警告: 隐式声明函数‘putchar' [-Wimplicit-function-declaration]编译通过,只有一个警告,生成了可执行文件m,运行它正常,输出一空格。
修改下t.c 文件:
编译后执行
输出: test
从这可看出,包含.c文件进去对程序并没造成什么影响,反而比包含.h文件来得直接方便,这里主要考虑到大型项目中,各文件直接的联系,如A.c文件中包好M.c文件,B.c 文件中包含M.c文件,而A.c文件又包含B.c文件,那么编译时就会报错,函数名重定义了。 #include<>与#include""的区别:
对于用角括号包含的头文件,gcc 首先查找-I选项指定的目录,然后查找系统的头文件目录(通常是/usr/include,在我的系统上还包括/usr/lib/gcc/i-linux-gnu/4.3.2/include);而对于用引号包含的头文件,gcc 首先查找包含头文件的.c文件所在的目录,然后查找-I选项指定的目录,最后再查找系统的头文件目录。 静态库
将如上5个.c文件和一个.h文件放在同目录下,在当前目录下新建一Makefile文件,使用Makefile是编译。
编译后执行./main 显示:a
反编译指令: 查看反编译后程序
推荐整理分享linux链接编译详解(linux编译链接命令),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:linux如何编译工程,linux如何编译工程,linux编译链接命令,linux编译工具,linux编译链接过程,linux编译链接过程,linux 编译动态链接库,linux如何编译工程,内容如对您有帮助,希望把文章链接给更多的朋友!
利用linux的timerfd_create实现计时器示例分享 timer_poll.h/**File:timer_poll.h*Author:Administrator*/#ifndefTIMER_POLL_H#defineTIMER_POLL_H#includesys/types.h#includefcntl.h#includesignal.h#includesys/epoll.h#includestdlib.h#includestring.h#inclu
shell脚本监控linux系统内存使用情况的方法(不使用nagios监控linux) 一、安装linux下面的一个邮件客户端msmtp软件(类似于一个foxmail的工具)1、下载安装:#tarjxvfmsmtp-1.4..tar.bz2#cdmsmtp-1.4.#./configure--prefix=/usr/local/msmtp#make#make
linux使用管道命令执行ps获取cpu与内存占用率 #includestdio.h#includeunistd.hintmain(){charcaStdOutLine[];//ps命令的标准输出中的一行信息char*pcTmp=NULL;//指向以空格拆分后的字符串charcaSelfPID[];//自身进程的PID
标签: linux编译链接命令
本文链接地址:https://www.jiuchutong.com/biancheng/374753.html 转载请保留说明!友情链接: 武汉网站建设