关于函数在.c文件定义在.h文件声明与makefile
来源:互联网 发布:淘宝网站的盈利来源 编辑:程序博客网 时间:2024/04/30 13:40
正确写法:
aaa.h:
#ifndef AAA_H#define AAA_H
void pri();
#endif
aaa.c:
#include "aaa.h"#include <stdio.h>
void pri()
{
printf("aaaaa\n");
}
main.c:
#include "aaa.h"
int main()
{
pri();
return 0;
}
Makefile:
target:main.o aaa.o
gcc -o aaa main.o aaa.o
.PHONY:clean
clean:
rm -f *.o aaa
相当于:
gcc -o aaa main.c aaa.c附.PHONY相关:
PHONY 目标并非实际的文件名:只是在显式请求时执行命令的名字。有两种理由需要使用PHONY 目标:避免和同名文件冲突,改善性能。
如果编写一个规则,并不产生目标文件,则其命令在每次make 该目标时都执行。例如:
clean:
rm *.o temp
因为"rm"命令并不产生"clean"文件,则每次执行"makeclean"的时候,该命令都会执行。如果目录中出现了"clean"文件,则规则失效了:没有依赖文件,文件"clean"始终是最新的,命令永远不会执行(因为makefile文件的目标就是使目标存在并且与依赖相比最新,如果没有clean文件,则命令一直执行,如果有了,那么与空白依赖相比必然是最新,就永远不会执行命令了);
为避免这个问题,可使用".PHONY"指明该目标。如:
.PHONY : clean
这样执行"make clean"会无视"clean"文件存在与否。
已知phony 目标并非是由其它文件生成的实际文件,make 会跳过隐含规则搜索。这就是声明phony 目标会改善性能的原因,即使你并不担心实际文件存在与否。
完整的例子如下:
.PHONY : clean
clean :
rm *.o temp
- 关于函数在.c文件定义在.h文件声明与makefile
- C++ 在.h文件中声明,在.cpp文件中定义 模板函数和模板类
- 模板函数的声明和定义都放在.h文件
- 模板函数的声明和定义都放在.h文件[zz]
- 模板函数,模板类的声明和定义都放在.h文件
- STL之二: 为什么模板函数的声明与实现都放在.h文件中
- c++模板类/模板函数的声明与定义应该放在头文件里
- c++模板类/模板函数的声明与定义应该放在头文件里
- c++模板类/模板函数的声明与定义应该放在头文件里
- c++模板类/模板函数的声明与定义应该放在头文件里
- C++模板类的成员函数定义与声明必须在一个头文件中
- c++模板类/模板函数的声明与定义应该放在头文件里
- C++如何在.h头文件中直接定义函数
- 模板声明与定义要放在同一文件中?
- 模板声明与定义要放在同一文件中?
- 模板声明与定义要放在同一文件中?
- 模板声明与定义要放在同一文件中?
- 模板声明与定义要放在同一文件中?
- VC获取操作系统版本信息
- 仆人式管理风格
- 用Cpp11新template feature尝试metaprogramming
- 九度1006
- Task: 最简洁的iPhone任务管理App
- 关于函数在.c文件定义在.h文件声明与makefile
- 在上传图片前实现图片预览
- iOS-上传应用程序到app store
- Mysql的锁机制
- LR支持的脚本语言
- ORACLE安装报错求助
- apache配置虚拟目录的方法
- file_get_contents模仿浏览器头(user_agent)获取
- JVM体系架构分析与内存原理模式详解~新