84

このコードを記述して3つのファイルを読み取ります。TMは正方行列のサイズ、LERは配列の行数、最後の値から(ler / 2)*2の非正方行列を定義します。

次に...コードはいくつかの関係を持つファイルを読み取ります。すべてが数字であり、C[ler]に割り当てられます。

次に...C[ler]がB[ler/2][2]に割り当てられます。

B [ler / 2] [2]の行ごとのこれらの座標は、aとbに割り当てられます。

aとbは、1を追加する行列A[tm][tm]の行と列です。

コードがクラッシュし、エラーが何であるかわかりません。

コンパイルしようとすると、コンパイラgcc -g -oMatSimMatSim.cppがプロンプトを表示します。

/usr/include/c++/4.6/iostream:75: undefined reference to `std::ios_base::Init::Init()'
/usr/include/c++/4.6/iostream:75: undefined reference to `std::ios_base::Init::~Init()'
collect2: ld returned 1 exit status

また、コンパイルしようとすると、コンパイラf77 -oMatSimMatSim.cppが次のようにプロンプ​​トを表示します。

/tmp/cc6ewlkf.o: In function `__static_initialization_and_destruction_0(int, int)':
MatSim.cpp:(.text+0x17ad4a): undefined reference to `std::ios_base::Init::Init()'
MatSim.cpp:(.text+0x17ad4f): undefined reference to `std::ios_base::Init::~Init()'
collect2: ld returned 1 exit status

解決

主な問題はライブラリの問題でした。次を使用してコードをコンパイルします。

 g++ -g -o MatSim MatSim.cpp -lstdc

まだ動作していません?ライブラリをインストールします。

sudo apt-get install g++-multilib
4

3 に答える 3

169

これはいくつかの方法で解決できます。

  • g++の代わりに使用gccg++ -g -o MatSim MatSim.cpp
  • 追加-lstdc++gcc -g -o MatSim MatSim.cpp -lstdc++
  • <string.h>に置き換えます<string>

これはリンカーの問題であり、コンパイラの問題ではありません。同じ問題がiostreamリンカーエラーの質問でカバーされています–それは何が起こっているのかを説明しています。

于 2012-06-06T01:46:42.050 に答える
7

これらのリンカーエラーのほとんどは、ライブラリがないために発生します。

プロジェクト->ターゲット->ビルドフェーズ->バイナリとライブラリのリンクにlibstdc++。6.dylibを追加しました。

それはiOS8.3用のXcode6.3.2で私のためにそれを解決しました

乾杯!

于 2015-06-30T14:57:09.707 に答える
0

g++はgcc-xc++ -lstdc++-shared-libgccと同等です

sizeof()メソッドを使用しているときに同様のエラーが発生していました。gccでg++以上のタグを使用することにより、コードがコンパイルされました。

于 2021-05-14T12:07:01.707 に答える