Make

Make

par Marwan Alaaeldin Mohamed Fathy Abdelaziz Ibrahim,
Number of replies: 2

Quand on essaye d'utiliser make dans le terminal il nous apparait un message d'erreur disant de la variable fichier (de ifstream) n'est pas une fonction.

Attachment Screenshot from 2019-03-20 19-38-24.png
In reply to Marwan Alaaeldin Mohamed Fathy Abdelaziz Ibrahim

Make

par Ugo Damiano,
Hello,
En lisant les "note" il semble que vous tentez de passer une string à ifstream et qu'il attend un const char *.
Cordialement,
In reply to Marwan Alaaeldin Mohamed Fathy Abdelaziz Ibrahim

Re: Make

par Vincent Bruno Christophe Tournier,

Salut,

Cette erreur m'a l'air assez subtile. De ce que j'en ai trouvé sur internet, le fait est que votre compilateur tente de linker non pas std::string mais std::__cxx11::string à votre module tools, or le constructeur de ifstream accepte std::string et rien d'autre. Cela semble venir d'une mauvaise version de g++, avez-vous essayé de mettre à jour g++ ? Et si oui, utilisez vous la VM du cours ?

Le site de gcc donne cette explication : If you get linker errors about undefined references to symbols that involve types in the std::__cxx11 namespace then it probably indicates that you are trying to link together object files that were compiled with different values for the _GLIBCXX_USE_CXX11_ABI macro. This commonly happens when linking to a third-party library that was compiled with an older version of GCC.

Il existe peut-être un moyen de contourner cette erreur en passant au constructeur de ifstream non pas une string mais un tableau de char. Je vous laisse trouver quelle fonction utiliser pour passer de l'un à l'autre, c'est assez simple.

Tenez moi au jus sur comment évolue votre bug !