我开始实施一个大型程序。但我遇到了一个大问题。所以这是我的程序非常简化的代码。我有一个单独的.c文件用于我的函数 normal.c 主程序是 main.c 我已将这两个与 cal.h < / strong>头文件。
的main.c
#include <stdio.h>
#include "cal.h"
void main()
{
int num1, num2, ans;
num1=5;
num2=5;
ans=add(num1, num2);
printf("%d" ,ans);
}
normal.c
#include "cal.h"
int add(int num1, int num2)
{
return num1+num2;
}
cal.h
#ifndef CAL_H_INCLUDED
#define CAL_H_INCLUDED
#include <errno.h>
int add(int num1, int num2);
#endif // CAL_H_INCLUDED
但是当我编译它时,它会发出错误 .. \ main.c | 10 |对'add&#39; |
的未定义引用我在Windows 8.1中使用CodeBlocks v.13.12对此问题的任何答案都非常感谢。我也尝试使用CodeLite,但同样的错误发生了。谢谢!
答案 0 :(得分:2)
ubuntu终端需要完整的代码编译 使用以下
gcc normal.c main.c -o out -lm
答案 1 :(得分:0)
代码块具有自动链接,但为此您需要在项目下拥有源文件和头文件。
当我创作个人时,我遇到了同样的问题.c&amp; .h文件并期望IDE链接目标文件但它失败了。我把它们放在一个项目下,它工作了!
答案 2 :(得分:0)
使用完整的代码编译。 如果您的c代码文件main.c和normal.c在./src中,而头文件cal.h在./inc中,请遵循以下方法从当前目录(。)
g ++ ./src/main.c ./src/normal.c -I ./inc -o main
现在main是要执行的二进制文件。