10

私はEclipse CDTを使用してインテルの命令をテストしています。以下は私のプログラムです。

#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

8

はい、Main () 関数が欠落しており、コンパイラはプログラムを実行するためのエントリ ポイントを見つけることができません。

もう 1 つの理由は、main 関数を記述したとしても、.cpp ファイルを保存してコンパイルしようとしなかった場合、同じエラーが発生することです。したがって、.cpp ファイルが正常に保存されていることを確認してから、コードをコンパイルして実行してください。 .

私は同様の問題に直面しており、それを理解するのに約何時間も費やしたので、これが役立つことを願っています、ありがとう

于 2019-05-30T20:46:01.790 に答える