我对C比较陌生,所以如果我的问题太微不足道,请原谅我,虽然我在Stackoverflow中找不到任何工作解决方案。
我正在尝试使用GCC编译源文件,同时提供另一个外部源文件(它具有我需要的实际方法)。
下面是我要做的一个简单的例子:
这是我的主源文件,hello.c
#include <stdio.h>
int main (void)
{
printTest();
return 0;
}
这是我的外部源文件methodc:
void printTest(){
printf ("Hello, world!n");
}
这是我想使用的命令行:
gcc -include method.c hello.c -o hello -I./
我得到以下错误:
In file included from <command-line>:1:0:
./method.c: In function ‘printTest’:
./method.c:2:2: warning: incompatible implicit declaration of built-in function ‘printf’ [enabled by default]
printf ("Hello, world!n");
^
更新:让我困惑的是,如果我在hello.c中使用"#include"method.c,而不是使用GCC -include,它工作得很好。我的琐碎思维方式让我假设包含只是在主文件中删除代码,同时享受主源文件已经处理的所有包含(例如stdio.h)。
谢谢你的帮助Uri
您必须在方法method.c
中包含stdio.h
。stdio.h
包含方法printf
您需要在文件method.c
中包含头文件<stdio.h>