-2

クロスモジュールの依存関係を使用してアプリをコンパイルする方法はありますか? 標準関数と他のモジュール関数を使用してモジュールをコンパイルしようとすると

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 省略)

マクロ.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}
4

1 に答える 1