1

最近、Windows 32 マシンに MinGW と MSYS をインストールしましたが、問題なく動作しているようです。

C++ コンパイラでは、ベクター コンテナーを含めていますが、エラーは発生しません。しかし、それを使用しようとすると、コンパイル時にエラーが発生します。

だから、コード

#include <vector>  // include vector.h  
#include <stdio.h>  // include stdio.h

using namespace std;

main()  {

//   vector<int> A;  

printf("\nHeya ..");

}

元気に走っています。ただし、8 行目 (ベクトル宣言行) のコメントを外すと、コンパイル時に次のエラー (短縮) が発生します。

undefined reference to 'operator delete(void*)'
undefined reference to '__gxx_personality_v0'
4

2 に答える 2

8

おそらく、gccの代わりにコンパイルしていますg++。実際のコンパイラは同じですがg++、リンカにデフォルトの C++ ライブラリを使用するgccように指示し、C ライブラリを調べるように指示するだけでした。標準ライブラリの C++ 固有の部分を使用すると、すぐにgcc失敗します。

余談ですが、C++ はdefault int古い C の規則をサポートしていないため、実際には からの戻り値の型を指定する必要がありますmain

于 2012-08-25T18:29:17.417 に答える
0

コードをどのようにコンパイルしているかわかりません。メイン メソッドが無効で、署名が正しくなく、何も返されません。

次のようにする必要があります。

#include <vector>  // include vector.h  
#include <stdio.h>  // include stdio.h

using namespace std;

int main(int, char**)  {

//   vector<int> A;  

printf("\nHeya ..");
return 0;
}

また、これを gcc ではなく g++ でコンパイルする必要があります。

于 2012-08-25T18:29:30.210 に答える