Mio*_*oto -2 c file external function call
我在调用外部.c文件中定义的外部函数时遇到了一些麻烦.
我的主文件(main.c)是:
#include <stdio.h>
#include "header.h"
int main () {
int a = 100;
int b = 200;
int ret;
ret = maximo(a, b);
printf( "Max value is : %d\n", ret );
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我使用一个.h名为header.h声明函数的文件maximo().该header.h文件是:
int maximo(int num1, int num2);
Run Code Online (Sandbox Code Playgroud)
在另一个.c文件中,我有功能的定义maximo().该maximo.c文件是:
int maximo(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
Run Code Online (Sandbox Code Playgroud)
我上面提到的代码是我的文件的完整代码.该header.h文件只有一行.而且我没有#include在maximo.c文件中添加任何内容.
如果它缺少任何东西,我不会知道,因为,正如你所看到的,我是编程的初学者.
我遇到的错误是:
undefined reference to 'maximo'
error: 1d returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
我尝试将maximo.c代码放在header.h文件中,它工作正常,但这不是我需要的.
在我的搜索过程中,我阅读了一些关于将两个.c代码编译在一起的内容,以便将它们转换为.o文件然后.h文件可以正确链接它们,但我不知道该怎么做.
所以,如果有人能帮助我,我将非常感激!
提前致谢!
您还需要#include "header.h"在您的maximo.c文件中.不要忘记头文件中包含防护:
#ifndef MAXIMO_H
#define MAXIMO_H
int maximo(int num1, int num2);
#endif
Run Code Online (Sandbox Code Playgroud)
PS会建议您将"header.h"更改为"maximo.h".
您的命令行应为:
gcc main.c maximo.c -o "filename"
Run Code Online (Sandbox Code Playgroud)