GCC模块依赖项
有没有一种方法可以编译使用跨模块依赖关系的应用程序? 当我尝试使用标准函数和其他模块函数编译模块时GCC模块依赖项,c,gcc,module,include,c-preprocessor,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来处理它,但这非常难看。我希望在应用程序文件中包含所有文件,如下所示: 附录c 模块c void mod
gcc module.c -c
gcc module2.c -c
gcc module.o module2.o -o app
我会犯这样的错误
implicit declaration of function printf
我知道可以通过在每个文件中包含所有头并使用define&ifndef来处理它,但这非常难看。我希望在应用程序文件中包含所有文件,如下所示:
附录c
模块c
void moduleFunc(char* var) {macro2(); module2Func();}
模块2.c
void module2Func(...) {macro(); printf(...); some math func}
在宏.h中包含stdio.h。这样,任何试图宏.h头的模块都将使用stdio.h中的printf声明为什么告诉编译器执行其任务所需的内容是丑陋的?这就像有一个员工对他说,你不知道这个工具,但你可以很好地猜测它可能是什么!在每个文件中有一些像ifndef STDIO_H这样的行定义STDIO_H include endif是丑陋的。那是丑陋的吗?文件中有几行字符?这可能被认为是丑陋的,但他的女朋友却不这么认为。顺便说一句,源代码并不漂亮。如果你想去当地的美术馆。@Lukasik如果你必须在你的文件中实现你自己的头保护,那么你正在使用的编译器就坏了。你应该能够把它包括进去,然后处理完。标题保护应该在include文件中,而不是在源文件中。
void moduleFunc(char* var) {macro2(); module2Func();}
void module2Func(...) {macro(); printf(...); some math func}