0

passweb.cに1つのメインメソッドを使用して、3つのファイルを一緒にコンパイルしようとしています。

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

何が間違っているのか理解できません。よろしくお願いします!!

4

1 に答える 1

2

ソースファイルをソースファイルに含めないでください。次のものを取り除きます。

#include <cipher.c>
#include <menu.c>

あなたがそれを書いた方法で、あなたはmenu.cとcipher.cを2回コンパイルしています。最初にpassweb.cをコンパイルするとき、そしてもう一度menu.cとcipher.cをコンパイルするとき。

于 2012-11-17T20:52:46.920 に答える