c语言 - "In function '_start': (.text+0x20): undefined reference to `main'"无法使用类似问题的答案来解决错误



我是C的新手,并继续在功能'_start'':(.Text 0x20(中获得此错误:对`main'的未定义引用。我知道这是一个常见的错误,但在这里无法使用其他答案来解决。

我正在尝试编译我的" main.c"one_answers" memcheck.h"

我的主要c:

#include <stdio.h>
#include <stdlib.h>
#include "memcheck.h"

int main () {
  int *ptr;
    ptr = malloc(sizeof(*ptr));
    free(NULL);
return 0;
}
void *memcheck_malloc (size_t size, char *file, int line){
return NULL;
}
void memcheck_free (void *ptr, char *file, int line){
}

我的memcheck.h:

#include <stdlib.h>
#ifndef MEMCHECK_H
#define MEMCHECK_H
#define main memcheck_main
#undef malloc
#define malloc(size) memcheck_malloc(size, __FILE__, __LINE__)
#undef free
#define free(ptr) memcheck_free(ptr, __FILE__, __LINE__)

void *memcheck_malloc (size_t size, char *file, int line);
void memcheck_free (void *ptr, char *file, int line);

#endif

这是我收到的错误:

$ gcc -Wall -ansi -pedantic -include memcheck.h main.c -o main
/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status

由于:

,您没有main((函数
#define main memcheck_main

不确定您想实现的目标。

我相信您正在制作内存泄漏调试工具?

只需删除:

#undef malloc
#undef free

不要重新定义您的主要功能...

#define main memcheck_main

否则,您也可以使用" Valgrind"来测试内存泄漏(以及更多(。

相关内容

最新更新