带头文件的makefile

时间:2013-11-03 19:47:28

标签: c makefile

我正在尝试为我的程序创建一个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的创建示例。

1 个答案:

答案 0 :(得分:0)

您的问题不是标题,您的问题是标准输出是行缓冲的。这意味着您无法保证在编写行尾字符之前实际写入输出。 printf()中的main()行结尾'\n',会立即显示。您在p()中的输出没有,并且随后没有其他输出发生。

尝试将func.h更改为

#include "func.h"
int p(){
    printf("p\n");
}

你应该在输出中看到一条孤独的p