我有以下C代码:
#include <stdio.h>
#include "helper.h"
int main(int argc, char ** argv){
if (argc < 4){
fprintf(stderr, "Usage: ./program_name <DISK> <LOCAL_FILE> <DESTINATION> \n");
exit(1);
}
FILE * target;
}
helper.h定义如下:
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <string.h>
/*
A bunch of function headers and global variables below, none of which
are called target.
*/
当我尝试使用以下命令编译上述内容时:
gcc -Wall -o program_name program_name.c
我收到以下错误:
program_name.c:19:12: error: use of undeclared identifier 'target'
FILE * target;
^
1 error generated.
我发现删除原始程序中的#include "helper.h"
语句会停止编译错误......但问题是我需要helper.h
和{{1}中定义的方法完成程序。知道它有什么问题吗?我的智慧结束了。
答案 0 :(得分:1)
我解决了这个问题。
helper.h
中的一个常量被称为FILE,这显然会导致问题。感谢大家的帮助!