未定义对`std :: ios_base :: Init :: Init()的引用


73

我编写这段代码来读取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会提示:

另外,当我尝试编译它时,编译器f77 -o MatSim MatSim.cpp会提示:

主要问题是库问题,请使用以下命令编译代码:

还是行不通?安装库:


编译器是否给出错误?当您说“编译器的退出状态为1”而不是程序的退出状态为1时,您确定正确吗?
Celeritas 2012年

Celeritas,是的,这是我执行任何编译器后立即收到的信息[gcc o f77]
Another.Chemist 2012年


谢谢乔纳森·莱夫勒!!您和Reinier启发了我的代码,现在我可以真正前进了!!!
Another.Chemist 2012年

Answers:


146

您可以通过以下几种方法解决此问题:

  • 使用g++在代替gccg++ -g -o MatSim MatSim.cpp
  • 添加-lstdc++gcc -g -o MatSim MatSim.cpp -lstdc++
  • 替换<string.h><string>

这是一个链接器问题,而不是编译器问题。iostream链接器错误问题涉及相同的问题–它说明了正在发生的事情。


谢谢Reiner ...我尝试了您的建议,然后得到: g ++ -g -o MatSim MatSim.cpp -lstdc / usr / bin / ld:找不到-lstdc collect2:ld返回1退出状态
Another.Chemist 2012年

如果使用额外的库选项,则应使用-lstdc++,而不是-lstdc。但是,如果使用g ++,则不必添加该库。
Reinier Torenbeek 2012年

谢谢赖尼尔!!您和Jonathan Leffler启发了我的代码,现在我可以真正前进了!!!
Another.Chemist 2012年

2
我认为这是人为的错误:用gcc(而不是g ++)编译c ++代码是不对的(因为我自己做错了,在Google上搜索过:)
Zac 2012年

我试图ndk-build到jni目录。我认为您的答案是一个.cpp而不是目录。你有解决办法吗?
iBrain

7

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

我在“项目”->“目标”->“构建阶段”->“使用库链接二进制文件”中添加了libstdc ++。6.dylib

那在iOS 8.3的Xcode 6.3.2上为我解决了

干杯!


谢谢你分享这个,伙计。你刚刚解决了我的问题。我试图使用gtest-1.7.0 Framework和Xcode版本6.3.2在我的项目中为统一测试编译目标。
Eduardo Reis
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.