C中main方法的多个实例
Multiple instances of main method in C
我的作业有问题,但我不是在寻求帮助来完成作业,只是一个问题。
我的代码是这样的:
#include "linux/kernel.h"
#include "linux/unistd.h"
#include <linux/slab.h>
typedef _msg_t msg_t;
struct msg_t { /* members here */ };
static msg_t *bottom = NULL;
static msg_t *top = NULL;
int function_one (argA, argB) {
/* function is working, no need to show code*/
}
int function_two (argA, argB) {
/* function is working, so no need I guess to show the code*/
}
int main(int argc, char ** argv) {
char *in = "This is a testing message";
char msg[50];
int mlen;
function_one(in, strlen(in)+1);
mlen = function_two(msg, 50);
}
问题是:当我从目录执行 make 命令时,出现错误
/home/<username hidden by me>/dm510/linux-3.18.2/arch/um/os-linux/main.c:118:
multipli definition of 'main'
arch/um/kernel/built-in.o:
/home/<username hidden again>/dm510/linux-3.18.2/arch/um/kernel/file_i_created.c:60
first defined here"
这个错误是什么意思?我在自己的文件中只定义了一次main方法
该消息说您有(至少)两个 C 文件,main.c 和 file_i_created.c 包含在构建中。两者都有 main() 函数。 (在 C 中,该术语是 "function",而不是 "method"。)删除其中一个源文件,或 remove/rename 其中一个中的 main() 函数。
这里有多种方法:
- 通常一个程序中只有一个main。如果是这样,决定哪个是实际的主要并重命名另一个
- 如果两个主电源都必不可少,您可以尝试将它们放在单独的命名空间中
虽然没有看到 file_i_created.c
代码,但真的无法分辨。也可能是别的东西。
我的作业有问题,但我不是在寻求帮助来完成作业,只是一个问题。
我的代码是这样的:
#include "linux/kernel.h"
#include "linux/unistd.h"
#include <linux/slab.h>
typedef _msg_t msg_t;
struct msg_t { /* members here */ };
static msg_t *bottom = NULL;
static msg_t *top = NULL;
int function_one (argA, argB) {
/* function is working, no need to show code*/
}
int function_two (argA, argB) {
/* function is working, so no need I guess to show the code*/
}
int main(int argc, char ** argv) {
char *in = "This is a testing message";
char msg[50];
int mlen;
function_one(in, strlen(in)+1);
mlen = function_two(msg, 50);
}
问题是:当我从目录执行 make 命令时,出现错误
/home/<username hidden by me>/dm510/linux-3.18.2/arch/um/os-linux/main.c:118:
multipli definition of 'main'
arch/um/kernel/built-in.o:
/home/<username hidden again>/dm510/linux-3.18.2/arch/um/kernel/file_i_created.c:60
first defined here"
这个错误是什么意思?我在自己的文件中只定义了一次main方法
该消息说您有(至少)两个 C 文件,main.c 和 file_i_created.c 包含在构建中。两者都有 main() 函数。 (在 C 中,该术语是 "function",而不是 "method"。)删除其中一个源文件,或 remove/rename 其中一个中的 main() 函数。
这里有多种方法:
- 通常一个程序中只有一个main。如果是这样,决定哪个是实际的主要并重命名另一个
- 如果两个主电源都必不可少,您可以尝试将它们放在单独的命名空间中
虽然没有看到 file_i_created.c
代码,但真的无法分辨。也可能是别的东西。