GCC模块依赖性

时间:2013-03-13 14:30:12

标签: c gcc module include c-preprocessor

有没有办法编译使用跨模块依赖项的应用程序? 当我尝试使用标准函数编译模块时其他模块功能

gcc module.c -c
gcc module2.c -c
gcc module.o module2.o -o app

我收到错误,如

implicit declaration of function printf

我知道可以通过在每个文件中包含所有标头并使用#define&来处理它。 #ifndef,但它非常难看。我想在app文件中包含所有文件,如下所示: app.c

#include "macro.h"
#include "module.h"
#include "module2.h"

#include <math.h>
#include <stdio.h>
#include <stdlib.h>

int main(void) {}

(module.h&amp; module2.h省略)

macro.h

#define macro(var1, var2) var1 ? printf(var2) : moduleFunc(var2)
#define macro2(var) some math func

module.c

void moduleFunc(char* var) {macro2(); module2Func();}

module2.c

void module2Func(...) {macro(); printf(...); some math func}

1 个答案:

答案 0 :(得分:0)

stdio.h中加入macro.h。这样,尝试macro.h标头的任何模块都将使用来自printf的{​​{1}}声明