Ich schreibe diesen Code, um 3 Dateien zu lesen, TM ist die Größe der quadratischen Matrix, LER die Anzahl der Zeilen eines Arrays und definiere vom letzten Wert eine nicht quadratische Matrix von (ler / 2) * 2
Dann ... las der Code eine Datei mit einigen Beziehungen, alle sind Zahlen und werden C [ler] zugewiesen.
Dann wird C [ler] B [ler / 2] [2] zugewiesen.
Diese Koordinaten pro Zeile in B [ler / 2] [2] werden a und b zugewiesen.
a und b sind die Zeile und die Spalte der Matrix A [tm] [tm], in der 1 hinzugefügt werden soll.
Mein Code stürzt ab und ich sehe den Fehler nicht.
Wenn ich versuche, es zu kompilieren, fordert der Compiler gcc -g -o MatSim MatSim.cpp Folgendes auf :
/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
Wenn ich versuche, es zu kompilieren, fordert der Compiler f77 -o MatSim MatSim.cpp Folgendes auf :
/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
Lösung
Das Hauptproblem war ein Bibliotheksproblem. Kompilieren Sie Ihren Code mit:
g++ -g -o MatSim MatSim.cpp -lstdc
Funktioniert immer noch nicht? Bibliotheken installieren:
sudo apt-get install g++-multilib
Antworten:
Sie können dies auf verschiedene Arten beheben:
g++
anstelle vongcc
:g++ -g -o MatSim MatSim.cpp
-lstdc++
:gcc -g -o MatSim MatSim.cpp -lstdc++
<string.h>
durch<string>
Dies ist ein Linker-Problem, kein Compiler-Problem. Das gleiche Problem wird in der Frage iostream linker error behandelt - es erklärt, was los ist.
quelle
-lstdc++
nicht verwenden-lstdc
. Wenn Sie jedoch g ++ verwenden, ist es nicht erforderlich, diese Bibliothek hinzuzufügen.Die meisten dieser Linkerfehler treten aufgrund fehlender Bibliotheken auf.
Ich habe die libstdc ++. 6.dylib in meinem Projekt-> Ziele-> Build-Phasen-> Binär mit Bibliotheken verknüpfen hinzugefügt.
Das hat es für mich unter Xcode 6.3.2 für iOS 8.3 gelöst
Prost!
quelle