2017-01-25 15 views
0

を与える:C++のヘッダファイルは、Windowsの非互換性のエラー

#ifndef TRIANGLE64_H 
#define TRIANGLE64_H 

class Triangle64{ 
public: 

Triangle64(); 

double getArea(); 

void destroy(); //Frees the allocated memory 

private: 

//Variables reflecting the properties of the triangle 
double Base; 
int N_ulps; 
double s; 
double Area; 
}; 

#endif 

私はエラーで返されています:

This version of C:\Users\ezio1\AppData\Local\Temp\Triangle64.exe is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher.

私はこのコードから.exeファイルを作成しようとしていないので、かなり奇妙に思えます(完全性のために、Windows 10もgccコンパイラで実行しています)。

私は、エラーメッセージを無視しようとしたヘッダからクラスファイルを作成しようとしました:

しかし、コードも、この時間を実行していないと私はエラーメッセージ

に戻っています

c:/mingw/bin/../lib/gcc/mingw32/5.3.0/../../../libmingw32.a(main.o):(.text.startup+0xa0): undefined reference to `[email protected]' collect2.exe: error: ld returned 1 exit status

これは、コンパイラのインストールに問題があるか、OSと何か関係がある可能性がありますか?

+0

他のコードがあり、アプリケーションのビルド方法を教えてくれていません。 makefileやコマンドラインを含めれば良いでしょう。 2番目の問題については、http://stackoverflow.com/questions/5259714/undefined-reference-to-winmain16/5260237#5260237 –

+0

を参照してください。リンク行に-m64/-m32フラグを追加します。ここにリンクコマンドを表示できますか? – ccpgh

+0

最初のエラーのためにMCVEを投稿してください。また、問題をよりよく説明してください。あなたは、 ".hファイルをタイプする"と "エラーを返しました"の間に多くのステップを省きました。まず、EXEファイルを作成しようとしていないと言いますが、後でコードをコンパイルして実行しようとしているようです。 (EXEファイルを作成せずにコンパイルして実行することはできません) –

答えて

-1

2番目のエラーメッセージに基づいて、16ビットアプリケーションを構築しているようです。 64ビットバージョンのWindowsでは、x86アーキテクチャの制限により、16ビットの実行可能ファイルを実行できません。

コンパイラの設定を変更して、32ビットまたは64ビットのコードをビルドします。

+0

mingwのどのバージョンでも16ビットの実行可能ファイルを作成できません –

+0

@ M.M次に 'WinMain @ 16 'はどこから来ますか?エラーメッセージは、16ビットアプリケーションで表示されるエラーメッセージです。 –

+0

これはWin32のエントリポイントの名前です(なぜ私に質問しないでください) –

関連する問題