web-dev-qa-db-fra.com

référence non définie à `std :: ios_base :: Init :: Init () '

J'écris ce code pour lire 3 fichiers, TM est la taille de la matrice carrée, LER le nombre de lignes d'un tableau et à partir de la dernière valeur, définit une matrice non carrée de (ler/2) * 2

Alors ... le code lit un fichier avec quelques relations, ce sont tous des nombres et sont assignés à C [ler].

Alors ... C [ler] est assigné à B [ler/2] [2].

Ces coordonnées, par ligne, dans B [ler/2] [2] sont attribuées à a et à b.

a et b sont la ligne et la colonne de la matrice A [tm] [tm] où ajouter 1.

Mon code se bloque et je ne vois pas quelle est l'erreur.

Lorsque j'essaie de le compiler, le compilateur gcc -g -o MatSim MatSim.cpp demande:

/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

En outre, lorsque j'essaie de le compiler, le compilateur f77 -o MatSim MatSim.cpp a demandé:

/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

Solution

Le problème principal était un problème de bibliothèque. Compilez votre code en utilisant:

 g++ -g -o MatSim MatSim.cpp -lstdc

Ne fonctionne toujours pas? Installer des bibliothèques:

Sudo apt-get install g++-multilib
58
Another.Chemist

Vous pouvez résoudre ce problème de plusieurs manières:

  • Utilisation g++ au lieu de gcc: g++ -g -o MatSim MatSim.cpp
  • Ajouter -lstdc++: gcc -g -o MatSim MatSim.cpp -lstdc++
  • Remplacer <string.h> par <string>

C'est un problème de l'éditeur de liens et non du compilateur. Le même problème est traité dans la question erreur de l'éditeur de liens iostream - cela explique ce qui se passe.

120

La plupart de ces erreurs de l'éditeur de liens sont dues à des bibliothèques manquantes.

J'ai ajouté le libstdc ++. 6.dylib dans mon projet-> cibles-> phases de construction-> lien binaire avec bibliothèques.

Cela a résolu pour moi sur Xcode 6.3.2 pour iOS 8.3

À votre santé!

6
Arjun Shukla