undefined reference to `std::ios_base::Init::Init()'

c, coredump, matrix

Solution

You can resolve this in several ways:

- Use `g++` in stead of `gcc`: `g++ -g -o MatSim MatSim.cpp`

- Add `-lstdc++`: `gcc -g -o MatSim MatSim.cpp -lstdc++`

- Replace `<string.h>` by `<string>`

This is a linker problem, not a compiler issue. The same problem is covered in the question iostream linker error – it explains what is going on.

Problem

I write this code to read 3 files, TM is the size of square matrix, LER the No. of rows of an array and from last value define a non-square matrix of (ler/2)*2 Then... the code read a file with some relations, all are numbers and are assign to C[ler]. Then ... C[ler] is assigned to B[ler/2][2]. Those coordinates, per row, in B[ler/2][2] are assign to a and b. a and b are the row and the column of the matrix A[tm][tm] where to add 1. My code crashes and I don't see what the error is. When I try to compile it, the compiler gcc -g -o MatSim MatSim.cpp prompted: ``` /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 ``` Also, when I try to compile it, the compiler f77 -o MatSim MatSim.cpp prompted: ``` /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 ``` Solution The main problem was a library problem, Compile your code using: ``` g++ -g -o MatSim MatSim.cpp -lstdc ``` Still not working? Install libraries: ``` sudo apt-get install g++-multilib ```

Original source

Related problems