我正在尝试将三个文件一起编译,在passweb.c中有一个主要方法。
heres passweb.c
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <cipher.c>
#include <menu.c>
long pointer;
char *createRecord(char *name, char *password, char *type);
char *file = "password.csv";
int main(int argc, char *argv[]){
if(fopen(file,"r")==NULL){
FILE *newFile = fopen(file,"w+");
fclose(newFile);
}
if(strcmp(argv[0],"-menu")==1){
menu();
}
else if(strcmp(argv[0],"-add")==1){
add(argv[1], argv[2], argv[3]);
}
else if(strcmp(argv[0],"-edit")==1){
edit(argv[1],argv[2],argv[3],argv[4],argv[5],argv[6]);
}
}
和cipher.c
#include <stdio.h>
#include <stdlib.h>
int Encrypt(char *fileName){
int offset=5;
Shift(fileName, offset);
}
int Decrypt(char *fileName){
int offset=-5;
Shift(fileName, offset);
}
makefile:
passweb: passweb.c menu.c cipher.c
gcc -o passweb passweb.c menu.c cipher.c -I.
错误:
passweb.c:10: error: conflicting types for ‘main’
./cipher.c:3: error: previous definition of ‘main’ was here
我无法弄清楚我做错了什么。 提前感谢您的时间!!
答案 0 :(得分:2)
不要将源文件包含在源文件中。摆脱以下几点:
#include <cipher.c>
#include <menu.c>
你编写它的方式,你正在编译menu.c和cipher.c两次。首先编译passweb.c,再编译menu.c和cipher.c。