10

我正在使用 eclipse CDT 来测试 Intel 指令,下面是我的程序:

#define cpuid(func,ax,bx,cx,dx)\
__asm__ __volatile__ ("cpuid":\
 "=a" (ax), "=b" (bx), "=c" (cx), "=d" (dx) : "a" (func));
int Check_CPU_support_AES()
 {
 unsigned int a,b,c,d;
 cpuid(1, a,b,c,d);
 return (c & 0x2000000);
 }

当我编译上面的代码时,我得到链接错误:

Info: Internal Builder is used for build
gcc -O0 -g3 -Wall -c -fmessage-length=0 -o "src\\Intel.o" "..\\src\\Intel.c" 
gcc -o Intel.exe "src\\Intel.o" 
c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../libmingw32.a(main.o):main.c:(.text.startup+0xa7): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status

请帮我解决这个问题。

4

6 回答 6

11

你的程序不完整。您需要实现操作系统预期的入口点。在您的情况下,它看起来像被称为WinMain.

于 2013-06-05T17:41:28.250 回答
8

是的,缺少 Main () 函数,编译器无法找到执行程序的入口点。

另一个原因是即使您已经编写了 main 函数,但是如果您没有保存 .cpp 文件并尝试编译它会给出相同的错误。所以请确保您已成功保存 .cpp 文件,然后编译并运行您的代码.

希望这会有所帮助,因为我遇到了类似的问题,我花了大约几个小时才弄清楚,谢谢

于 2019-05-30T20:46:01.790 回答
2
  1. 缺少该main()功能。
  2. 将此代码另存为一些新文件。再次运行编译代码。
  3. 检查PATH环境变量。
于 2020-08-17T15:10:34.297 回答
1

在 VS Code 中,当您尚未保存代码时,可能会发生这种情况。单击Ctrl + s以保存代码,然后再次运行程序。

或者要自动执行此操作,请转到“设置”并搜索“保存”。向下滚动并搜索“是否在运行前保存当前文件”并启用它。

于 2021-08-13T13:31:51.247 回答
0

替换main()main(int argc,char **argv),它对我有用。

于 2021-05-17T15:59:14.100 回答
0

你必须先保存文件>> Ctrl + s

于 2021-09-22T01:21:15.620 回答