【发布时间】:2012-06-10 00:00:10
【问题描述】:
我写这段代码来读取 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
【问题讨论】:
-
编译器是否报错?你确定你说“编译器给出的退出状态为 1”而不是程序给出的退出状态为 1 是正确的吗?
-
Celeritas,是的,这是我在执行任何编译器后立即收到的 [gcc o f77]
-
感谢乔纳森·莱弗勒!!!你和 Reinier 启发了我的代码,现在我真的可以前进了!!!