Cygwin n'aime pas std on dirait...
Résolu/Fermé
@xi@g@me
Messages postés
68
Date d'inscription
lundi 2 juin 2008
Statut
Membre
Dernière intervention
25 septembre 2018
-
12 juin 2008 à 09:06
@xi@g@me Messages postés 68 Date d'inscription lundi 2 juin 2008 Statut Membre Dernière intervention 25 septembre 2018 - 23 juin 2008 à 04:45
@xi@g@me Messages postés 68 Date d'inscription lundi 2 juin 2008 Statut Membre Dernière intervention 25 septembre 2018 - 23 juin 2008 à 04:45
A voir également:
- Cygwin n'aime pas std on dirait...
- Cygwin download - Télécharger - Édition & Programmation
- Cygwin gcc ✓ - Forum Programmation
- Fichier std - Forum Graphisme
- Peut on supprimer fichiers lost dir - Forum Matériel & Système
- Std::string& ✓ - Forum C++
6 réponses
@xi@g@me
Messages postés
68
Date d'inscription
lundi 2 juin 2008
Statut
Membre
Dernière intervention
25 septembre 2018
4
13 juin 2008 à 06:28
13 juin 2008 à 06:28
J'en ai un peu plus sur le problème:
les références non trouvées sont:
_Rb_tree_increment 2 fois
_Rb_tree_insert_and_rebalance 1 fois
_Rb_tree_decrement 2 fois
et aussi
std::ios_base::Init::Init() 1 fois
std::ios_base::Init::~Init() 1 fois
les références non trouvées sont:
_Rb_tree_increment 2 fois
_Rb_tree_insert_and_rebalance 1 fois
_Rb_tree_decrement 2 fois
et aussi
std::ios_base::Init::Init() 1 fois
std::ios_base::Init::~Init() 1 fois
@xi@g@me
Messages postés
68
Date d'inscription
lundi 2 juin 2008
Statut
Membre
Dernière intervention
25 septembre 2018
4
18 juin 2008 à 08:03
18 juin 2008 à 08:03
voici le fichier de sortie de la compilation : des idées?
g++ -I. -I/usr/lib/ruby/1.8/i386-cygwin -I/usr/lib/ruby/1.8/i386-cygwin -I. -g -O2 -c helloworld_wrap.cxx gcc -shared -s -Ixml2/include -I/usr/include -I/usr/local/include -Lxml2/bin -lsbml -lxml2 -lm -L/usr/lib -L/usr/local/lib -o helloworld.so helloworld_wrap.o helloworld.o -L"." -L"/usr/lib" -L. -Wl,--enable-auto-image-base,--enable-auto-import,--export-all -lruby -lsupc++ -ldl -lcrypt helloworld.o: In function `_ZNSt8multimapIiiSt4lessIiESaISt4pairIKiiEEED1Ev': /home/mathieu/ASDABP/helloworld.cpp:(.text+0xd): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const' /home/mathieu/ASDABP/helloworld.cpp:(.text+0x60): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const' /home/mathieu/ASDABP/helloworld.cpp:(.text+0x9f): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const' /home/mathieu/ASDABP/helloworld.cpp:(.text+0xce): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const' helloworld.o: In function `main': /home/mathieu/ASDABP/helloworld.cpp:656: undefined reference to `_readSBML' /home/mathieu/ASDABP/helloworld.cpp:658: undefined reference to `SBMLDocument::getNumErrors() const' /home/mathieu/ASDABP/helloworld.cpp:662: undefined reference to `std::cerr' /home/mathieu/ASDABP/helloworld.cpp:662: undefined reference to `SBMLDocument::printErrors(std::basic_ostream<char, std::char_traits<char> >&) const' helloworld.o: In function `_Z41__static_initialization_and_destruction_0ii': /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/iostream:77: undefined reference to `std::ios_base::Init::Init()' /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/iostream:77: undefined reference to `std::ios_base::Init::~Init()' helloworld.o: In function `_ZNSt8multimapIiiSt4lessIiESaISt4pairIKiiEEED1Ev': /home/mathieu/ASDABP/helloworld.cpp:(.text$_ZNSt17_Rb_tree_iteratorISt4pairIK8Node_key4NodeEEppEi[std::_Rb_tree_iterator<std::pair<Node_key const, Node> >::operator++(int)]+0x1b): undefined reference to `std::_Rb_tree_increment(std::_Rb_tree_node_base*)' /home/mathieu/ASDABP/helloworld.cpp:(.text$_ZNSt17_Rb_tree_iteratorISt4pairIK8Node_key4NodeEEppEv[std::_Rb_tree_iterator<std::pair<Node_key const, Node> >::operator++()]+0x13): undefined reference to `std::_Rb_tree_increment(std::_Rb_tree_node_base*)' helloworld.o: In function `_ZN10ExperimentC1Ev': /home/mathieu/ASDABP/helloworld.cpp:78: undefined reference to `std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)' helloworld.o: In function `_ZNSt8multimapIiiSt4lessIiESaISt4pairIKiiEEED1Ev': /home/mathieu/ASDABP/helloworld.cpp:(.text$_ZNSt17_Rb_tree_iteratorISt4pairIK8Node_key4NodeEEmmEv[std::_Rb_tree_iterator<std::pair<Node_key const, Node> >::operator--()]+0x13): undefined reference to `std::_Rb_tree_decrement(std::_Rb_tree_node_base*)' collect2: ld returned 1 exit status make: *** [helloworld.so] Error 1
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
18 juin 2008 à 09:33
18 juin 2008 à 09:33
essai d'utiliser g++ plutôt que gcc pour l'édition des liens.
tu ne met pas comment tu compile helloworld.cpp
est-tu sur que c'est comme ça que l'on fait une bibliothèque dynamique ? (regarde là : http://www.commentcamarche.net/forum/affich 1881407 comment creer librairie partagee so linux)
tu ne met pas comment tu compile helloworld.cpp
est-tu sur que c'est comme ça que l'on fait une bibliothèque dynamique ? (regarde là : http://www.commentcamarche.net/forum/affich 1881407 comment creer librairie partagee so linux)
@xi@g@me
Messages postés
68
Date d'inscription
lundi 2 juin 2008
Statut
Membre
Dernière intervention
25 septembre 2018
4
20 juin 2008 à 04:44
20 juin 2008 à 04:44
salut char snipeur, ca fait plaisir d'avoir enfin une réponse...
helloworld.cpp est compilé de la même manière mais n'était pas modifié quand j'ai recompilé, d'où son absence...
en fait, le makefile est généré par ruby, et le helloworld_wrap.cpp par swigwin, car le but de la librairie est d'être utilisée par ruby. j'ai config ruby pour générer des commandes pour C++ (j'ai réussi a compiler un bon paquet de fois déjà avant qu'il foire comme ca), et les drapeaux en plus dans le gcc -shared comme par exemple "-L/usr/local/bin" on été rajoutés par un petit programme que j'ai créé a la main.
Je vais jeter un coup d'oeil sur le lien mais le makefile étant trop compliqué je doute pouvoir le modifier d'avantage a la main...
helloworld.cpp est compilé de la même manière mais n'était pas modifié quand j'ai recompilé, d'où son absence...
en fait, le makefile est généré par ruby, et le helloworld_wrap.cpp par swigwin, car le but de la librairie est d'être utilisée par ruby. j'ai config ruby pour générer des commandes pour C++ (j'ai réussi a compiler un bon paquet de fois déjà avant qu'il foire comme ca), et les drapeaux en plus dans le gcc -shared comme par exemple "-L/usr/local/bin" on été rajoutés par un petit programme que j'ai créé a la main.
Je vais jeter un coup d'oeil sur le lien mais le makefile étant trop compliqué je doute pouvoir le modifier d'avantage a la main...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
20 juin 2008 à 08:49
20 juin 2008 à 08:49
Bon, déjà, le problème ne viens que de l'édition des liens. Et en effet il ne semble pas trouver la lib standard du C++.
Dans le man gcc, je n'ai pas trouver l'option "-s", que "-S" qui n'assemble pas le code : cause possible de l'erreur ?
Fait une recherche sur ton disque dur pour savoir où se trouve les "libstdc++.*" Peut être manque t'elles.
Dans le man gcc, je n'ai pas trouver l'option "-s", que "-S" qui n'assemble pas le code : cause possible de l'erreur ?
Fait une recherche sur ton disque dur pour savoir où se trouve les "libstdc++.*" Peut être manque t'elles.
@xi@g@me
Messages postés
68
Date d'inscription
lundi 2 juin 2008
Statut
Membre
Dernière intervention
25 septembre 2018
4
23 juin 2008 à 04:45
23 juin 2008 à 04:45
salut char snipeur, il semblerait en effet que le manque de libc++ soit la cause du problème. j'ai regardé le extconf.rb qui permet de faire le makefile, et en argument de la fonction append_library il y avait supc++. Je l'ai remplacé par stdc++ et cela semble marcher.
il me reste les erreurs de SBML à corriger... (les headers et les libs existent car j'arrive a compiler quand je ne fais pas de lib dynamique pour ruby)
merci encore du tuyau :)
il me reste les erreurs de SBML à corriger... (les headers et les libs existent car j'arrive a compiler quand je ne fais pas de lib dynamique pour ruby)
helloworld.o: In function `main': /home/mathieu/ASDABP/helloworld.cpp:1042: undefined reference to `_readSBML' /home/mathieu/ASDABP/helloworld.cpp:1043: undefined reference to `SBMLDocument::getNumErrors() const' /home/mathieu/ASDABP/helloworld.cpp:1045: undefined reference to `SBMLDocument::printErrors(std::basic_ostream<char, std::char_traits<char> >&) const' collect2: ld returned 1 exit status make: *** [helloworld.so] Error 1
merci encore du tuyau :)