gpt4 book ai didi

使用 make 编译时,main 的类型与先前的 main 定义发生冲突

转载 作者:行者123 更新时间:2023-11-30 14:22:51 25 4
gpt4 key购买 nike

我正在尝试将三个文件编译在一起,在 passweb.c 中有一个主要方法。

这里是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);
}

生成文件:

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

我不知道我做错了什么。预先感谢您的宝贵时间!!

最佳答案

不要将源文件包含到源文件中。摆脱以下内容:

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

按照您编写的方式,您将编译 menu.c 和 cipher.c 两次。首先是编译 passweb.c 时,然后是编译 menu.c 和 cipher.c 时。

关于使用 make 编译时,main 的类型与先前的 main 定义发生冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13434637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com