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

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


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.


Most of these linker errors occur because of missing libraries.

I added the libstdc++.6.dylib in my Project->Targets->Build Phases-> Link Binary With Libraries.

That solved it for me on Xcode 6.3.2 for iOS 8.3

Cheers!


g++ is equivalent togcc -xc++ -lstdc++ -shared-libgcc

I was getting a similar error while using sizeof() method. By using g++ or above tags with gcc, the code got compiled.