Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1255 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++] Pb de link avec VTK4.2.2 et la STL - undefined reference !!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Pb de link avec VTK4.2.2 et la STL - undefined reference !!

n°1345797
kaloskagat​os
Posté le 13-04-2006 à 10:43:35  profilanswer
 

Bonjour :hello:
 
 
Je n'arrive pas à faire le link de mon programme avec la lib VTK4.2.2 que j'ai moi-même compilée sous Linux noyau 2.6. Voilà le message d'erreur:
 


/home/quickview/OPNSRC/VTK-4.2.2/Linux2.6.9-22.EL/bin/libvtkCommon.a(vtkInterpolatedVelocityField.o)(.gnu.linkonce.t._ZNSt14__simple_allocIP10vtkDataSetSt24__default_alloc_templateILb1ELi0EEE10deallocateEPS1_j+0x1d): In function `std::__simple_alloc<vtkDataSet*, std::__default_alloc_template<true, 0> >::deallocate(vtkDataSet**, unsigned int)':
: undefined reference to `std::__default_alloc_template<true, 0>::deallocate(void*, unsigned int)'
/home/quickview/OPNSRC/VTK-4.2.2/Linux2.6.9-22.EL/bin/libvtkCommon.a(vtkInterpolatedVelocityField.o)(.gnu.linkonce.t._ZNSt14__simple_allocIP10vtkDataSetSt24__default_alloc_templateILb1ELi0EEE8allocateEj+0x1d): In function `std::__simple_alloc<vtkDataSet*, std::__default_alloc_template<true, 0> >::allocate(unsigned int)':
: undefined reference to `std::__default_alloc_template<true, 0>::allocate(unsigned int)'
collect2: ld returned 1 exit status
make[2]: *** [/home/quickview/dev/sftvqvui_7.4.1/quickview/Linux2.6.9-22.EL/bin/qvtrace] Error 1
make[2]: Leaving directory `/home/quickview/dev/sftvqvui_7.4.1/quickview/src'
make[1]: *** [qvtrace] Error 2
make[1]: Leaving directory `/home/quickview/dev/sftvqvui_7.4.1/quickview/src'
make: *** [qvtrace] Error 2


 
:mmmfff:
 
g++ --version
g++ (GCC) 3.4.4 20050721 (Red Hat 3.4.4-2)
 
 
Je ne sais pas trop ce qui est en cause... Merci si vous avez une idée :)


Message édité par kaloskagatos le 13-04-2006 à 11:40:01

---------------
« Le hasard, c’est différent de la chance. Parce que la chance, je n'en ai jamais. »
mood
Publicité
Posté le 13-04-2006 à 10:43:35  profilanswer
 

n°1345889
kaloskagat​os
Posté le 13-04-2006 à 11:50:03  profilanswer
 

Si ça peut aider:
 
$cat /etc/redhat-release  
Red Hat Enterprise Linux WS release 4 (Nahant Update 2)
 
 
$ uname -a
Linux lindyn02 2.6.9-22.EL #1 Mon Sep 19 18:20:28 EDT 2005 i686 i686 i386 GNU/Linux


---------------
« Le hasard, c’est différent de la chance. Parce que la chance, je n'en ai jamais. »
n°1345907
kaloskagat​os
Posté le 13-04-2006 à 12:02:55  profilanswer
 

Je pense que c'est peut-être un problème de version gcc ou libstl mais je ne sais pas trop quoi tenter...


---------------
« Le hasard, c’est différent de la chance. Parce que la chance, je n'en ai jamais. »
n°1346032
Taz
bisounours-codeur
Posté le 13-04-2006 à 14:15:05  profilanswer
 

t'as compiler ton vtk en statique déjà ? pourquoi ? tu l'as compilé exactement dans le même environnement ? t'as validé ton vtk avec des programmes de tests ?
 
pas d'erreur/warning de compilation ?

n°1346182
kaloskagat​os
Posté le 13-04-2006 à 15:46:11  profilanswer
 

effectivement j'ai deux libstdc++ :
 

lindyn02:/home/quickview/OPNSRC/VTK-4.2.2/Linux2.6.9-22.EL$ ls -l /usr/lib/libstdc++*
-rwxr-xr-x  1 root root 258288 Dec 14  2004 /usr/lib/libstdc++-2-libc6.1-1-2.9.0.so
-rwxr-xr-x  1 root root 268428 Dec 14  2004 /usr/lib/libstdc++-3-libc6.2-2-2.10.0.so
lrwxrwxrwx  1 root root     30 Mar 22 11:47 /usr/lib/libstdc++-libc6.1-1.so.2 -> libstdc++-2-libc6.1-1-2.9.0.so
lrwxrwxrwx  1 root root     31 Mar 22 11:47 /usr/lib/libstdc++-libc6.2-2.so.3 -> libstdc++-3-libc6.2-2-2.10.0.so
lrwxrwxrwx  1 root root     18 Mar 22 11:39 /usr/lib/libstdc++.so.5 -> libstdc++.so.5.0.7
-rwxr-xr-x  1 root root 733488 Dec  1  2004 /usr/lib/libstdc++.so.5.0.7
lrwxrwxrwx  1 root root     18 Mar 22 11:37 /usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.3
-rwxr-xr-x  1 root root 804288 Jul 25  2005 /usr/lib/libstdc++.so.6.0.3


 
 
J'ai tenté de recompiler VTK en lib dynamique, quelques libs qui sont générées mais à un moment ça part en vrille. Si je fais ldd un des .so générés j'obtiens :
 

lindyn02:/home/quickview/OPNSRC/VTK-4.2.2/Linux2.6.9-22.EL$ ldd bin/libvtkCommon.so
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00af4000)
        libdl.so.2 => /lib/libdl.so.2 (0x00111000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00115000)
        libm.so.6 => /lib/tls/libm.so.6 (0x00f1a000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x008ba000)
        libc.so.6 => /lib/tls/libc.so.6 (0x001e0000)
        /lib/ld-linux.so.2 (0x003ff000)  
lindyn02:/home/quickview/OPNSRC/VTK-4.2.2/Linux2.6.9-22.EL$ ls -l /usr/lib/libstdc++.so.6 lrwxrwxrwx  1 root root 18 Mar 22 11:37 /usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.3


 
 
 
 
Sino les erreurs à la génération de VTK en .so sont là, je vais chercher comment résoudre ça.
 


In file included from /usr/lib/gcc/i386-redhat-linux/3.4.4/../../../../include/c++/3.4.4/backward/strstream:51,
(...)
                 from /home/quickview/OPNSRC/VTK-4.2.2/IO/vtkBMPReader.cxx:18:
 
/usr/lib/gcc/i386-redhat-linux/3.4.4/../../../../include/c++/3.4.4/backward/backward_warning.h:32:2:
 
(...)
 
 
/home/quickview/OPNSRC/VTK-4.2.2/IO/vtkBMPReader.cxx: In function `void vtkBMPReaderUpdate2(vtkBMPReader*, vtkImageData*, OT*) [with OT = double]':
/home/quickview/OPNSRC/VTK-4.2.2/IO/vtkBMPReader.cxx:545:   instantiated from here
/home/quickview/OPNSRC/VTK-4.2.2/IO/vtkBMPReader.cxx:507: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
/usr/lib/gcc/i386-redhat-linux/3.4.4/../../../../include/c++/3.4.4/bits/postypes.h:176: note: candidate 1: std::fpos<_StateT> std::fpos<_StateT>::operator+(std::streamoff) const [with _StateT = mbstate_t]
/home/quickview/OPNSRC/VTK-4.2.2/IO/vtkBMPReader.cxx:507: note: candidate 2: operator+(std::streamoff, long int) <built-in>
/home/quickview/OPNSRC/VTK-4.2.2/IO/vtkBMPReader.cxx:545:   instantiated from here
 
 
(...)


Message édité par kaloskagatos le 13-04-2006 à 15:47:20

---------------
« Le hasard, c’est différent de la chance. Parce que la chance, je n'en ai jamais. »
n°1346206
Taz
bisounours-codeur
Posté le 13-04-2006 à 16:10:48  profilanswer
 

bah ça a jamais pu compiler avant, je compreds pas ... faut que tu patchs :)

n°1346214
kaloskagat​os
Posté le 13-04-2006 à 16:21:00  profilanswer
 

ha bein si ça compilait en statique... mais j'ai trouvé la solution sur le net, faut effectivement patcher... Bon ça continue de compiler, je poste l'info si ça intéresse des gens...
 
 

Solution:
 
Open file vtkBMPReader.cxx in your VTK source directory and replace both old lines (O) by the new ones (N):
 
(O)      self->GetFile()->seekg(self->GetFile()->tellg() + streamSkip0, ios::beg);
(N)      self->GetFile()->seekg(static_cast<long>(self->GetFile()->tellg()) + streamSkip0, ios::beg);
 
 
(O)    self->GetFile()->seekg(self->GetFile()->tellg() + streamSkip1, ios::beg);
(N)    self->GetFile()->seekg(static_cast<long>(self->GetFile()->tellg()) +  streamSkip1, ios::beg);
 
 
Open file vtkImageReader.cxx in your VTK source directory and replace both old lines (O) by the new ones (N):
 
(O) this->File->seekg((long)streamStart, ios::beg);
(N) this->File->seekg(static_cast<long>(streamStart), ios::beg);
 
(O) self->GetFile()->seekg(self->GetFile()->tellg() + streamSkip0, ios::beg);
(N) self->GetFile()->seekg(static_cast<long>(self->GetFile()->tellg()) + streamSkip0, ios::beg);
 
(O) self->GetFile()->seekg(self->GetFile()->tellg() + streamSkip1 + correction,
(N) self->GetFile()->seekg(static_cast<long>(self->GetFile()->tellg()) + streamSkip1 + correction,


 
http://www.rz.uni-karlsruhe.de/rd/5427.php


---------------
« Le hasard, c’est différent de la chance. Parce que la chance, je n'en ai jamais. »
n°1346312
kaloskagat​os
Posté le 13-04-2006 à 17:30:38  profilanswer
 

Ca marche avec les lib dynamiques thx :)


---------------
« Le hasard, c’est différent de la chance. Parce que la chance, je n'en ai jamais. »

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++] Pb de link avec VTK4.2.2 et la STL - undefined reference !!

 

Sujets relatifs
Référence d objetUtilisation de libsndfile: problème de link
STL : listCSS probleme de cascading avec les a:link, a:hover...
erreur Notice: Undefined index en PHP ?etre référencé dans google
référence d'une partie d'un code dans une page[ Tomcat ] Communications link failure
[CPP] precision sur les pointeurs et reference[Linker error] undefined reference to 'IcmpSendEcho@'
Plus de sujets relatifs à : [C++] Pb de link avec VTK4.2.2 et la STL - undefined reference !!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR