aho*_*ota 0 c makefile constants
在我的原型文件proto.h中,我有
#define LOOP_LIMIT 90.00
#define PI 3.14159
#ifndef _PROTO_H
#define _PROTO_H
#include <stdio.h>
#include <math.h>
#include "get_problem.c"
#include "deg_to_rad.c"
#include "evaluate_sin.c"
#include "evaluate_cos.c"
#include "evaluate_tan.c"
int main(void);
int get_problem();
double deg_to_rad(int deg);
void evaluate_sin(int deg);
void evaluate_cos(int deg);
void evaluate_tan(int deg);
#endif
Run Code Online (Sandbox Code Playgroud)
在我的lab7.c中我有我的主要功能,我包括proto.h.当我尝试使用"make"命令在Linux上编译时,我收到以下消息:
gcc -c deg_to_rad.c deg_to_rad.c:在函数"deg_to_rad"中:
deg_to_rad.c:2:错误:"PI"未声明(首次在此函数中使用)
deg_to_rad.c:2:错误:(每个未声明的标识符仅报告一次
deg_to_rad.c:2:错误:对于它出现的每个函数.)
make:* [deg_to_rad.o]错误1
我真的不明白这一点,因为我的主要功能正确使用LOOP_LIMIT,但PI无效.
deg_to_rad.c:
double deg_to_rad(int deg) {
double rad = (PI * deg) / 180;
return rad;
}
Run Code Online (Sandbox Code Playgroud)
#include "get_problem.c"
#include "deg_to_rad.c"
#include "evaluate_sin.c"
#include "evaluate_cos.c"
#include "evaluate_tan.c"
Run Code Online (Sandbox Code Playgroud)
不,你不应该包括C文件!
通常,您在头文件(.h)中声明函数,在源文件(.c)中定义它们,并在源文件(.c)中包含头文件,只要您需要使用这些函数.
另外,显示deg_to_rad()函数的定义,编译器清楚地告诉你问题所在,我怀疑你试着调用函数中的其他函数之一.
编译器正确地抱怨,因为函数是在包含源文件的点之后声明的.
您需要遵循上面提到的标题和源文件的一般做法.
| 归档时间: |
|
| 查看次数: |
116 次 |
| 最近记录: |