我编写这段代码来读取3个文件,TM是方阵的大小,LER是数组的行数,从最后一个值开始定义(ler / 2)* 2的非方阵
然后...代码读取了具有一定关系的文件,所有文件均为数字,并分配给C [ler]。
然后... C [ler]被分配给B [ler / 2] [2]。
B [ler / 2] [2]中每行的那些坐标将分配给a和b。
a和b是矩阵A [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++
代替gcc
:g++ -g -o MatSim MatSim.cpp
-lstdc++
:gcc -g -o MatSim MatSim.cpp -lstdc++
<string.h>
替换<string>
这是一个链接器问题,而不是编译器问题。 iostream linker error问题涵盖了相同的问题–它说明了正在发生的事情。
关于c - 未定义对 `std::ios_base::Init::Init()'的引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10906275/