有没有一种方法可以使用跨模块依赖项来编译应用程序?
当我尝试使用标准功能和其他模块功能编译模块时
gcc module.c -c
gcc module2.c -c
gcc module.o module2.o -o app
我收到类似的错误
implicit declaration of function printf
我知道可以通过在每个文件中包含所有标头并使用#define和#ifndef来处理它,但这非常丑陋。我想将所有文件包含在应用程序文件中,如下所示:
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和module2.h)
宏
#define macro(var1, var2) var1 ? printf(var2) : moduleFunc(var2)
#define macro2(var) some math func
模组
void moduleFunc(char* var) {macro2(); module2Func();}
module2.c
void module2Func(...) {macro(); printf(...); some math func}
最佳答案
在您的stdio.h
中包括macro.h
。这样,任何尝试使用macro.h
标头的模块都将使用printf
中的stdio.h
声明
关于c - GCC模块依赖性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15388171/