我正在尝试为我的程序创建一个makefile,由于某种原因它根本不能使用头文件,我搜索了网络并尝试了几十个makefile和命令,但是无法使其工作。我有一个简单的主文件:
#include <stdio.h>
#include <stdlib.h>
#include "func.h"
int main(int argc, char *argv[]) {
printf("the number of params: %d\n" ,argc);
p();
return EXIT_SUCCESS;
}
我有头文件:
#include <stdio.h>
#include <stdlib.h>
int p();
和func.c
#include "func.h"
int p(){
printf("p");
}
我的makefile目前看起来像这样:
check: Excersize1.c func.c
gcc -o check Excersize1.c func.c
问题是,当创建文件检查时,它不运行函数p(),唯一的输出是“...的数量”
任何帮助都将被批准。
注意:代码运行良好,可以用作头文件的使用和支持它们的makefile的创建示例。
答案 0 :(得分:0)
您的问题不是标题,您的问题是标准输出是行缓冲的。这意味着您无法保证在编写行尾字符之前实际写入输出。 printf()
中的main()
行结尾'\n'
,会立即显示。您在p()
中的输出没有,并且随后没有其他输出发生。
尝试将func.h更改为
#include "func.h"
int p(){
printf("p\n");
}
你应该在输出中看到一条孤独的p
。