未定义的参考`std :: ios_base :: Init :: Init()'

我写这个代码来读取3个文件,TM是matrix的大小,LER是一个数组的行数,并从上一个值定义(ler / 2)* 2的非方阵

然后…代码读取一个关系的文件,都是数字,并分配给C [ler]。

然后… C [ler]被分配给B [ler / 2] [2]。

B [ler / 2] [2]中每行的坐标分配给a和b。

a和b是matrixA [tm] [tm]的行和列在哪里加1。

我的代码崩溃,我不知道错误是什么。

当我尝试编译它时,编译器gcc -g -o MatSim MatSim.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 -o MatSim MatSim.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 

你可以通过几种方式解决这个问题:

  • g++代替gccg++ -g -o MatSim MatSim.cpp
  • 添加-lstdc++gcc -g -o MatSim MatSim.cpp -lstdc++
  • <string>replace<string.h> <string>

这是一个链接器问题,而不是编译器问题。 问题iostream链接器错误中涵盖了相同的问题 – 它解释了发生了什么。

大多数这些链接器错误是由于缺less库而发生的。

我在我的Project-> Targets-> Build Phases-> Link Binary With Libraries中添加了libstdc ++。6.dylib

这解决了我在iOS 8.3的Xcode 6.3.2

干杯!