-2

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

4

1 回答 1

0

您的问题不是标题,您的问题是标准输出是行缓冲的。这意味着您不能保证在写入行尾字符之前实际会写入输出。你printf()的 inmain()有一个 line end '\n',它会立即出现。您的输出p()没有,并且随后没有其他输出发生。

尝试将您的 func.h 更改为

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

你应该在输出中看到一个孤独p的行。

于 2013-11-05T21:19:42.763 回答