link error - undefined reference to `std::ios_base::Init::Init()'

link error - undefined reference to `std::ios_base::Init::Init()' - C++ - Programmation

Marsh Posté le 18-07-2005 à 21:17:53    

Bonjour,
J'essaie d'implanter un nouveau nodule dans un syteme existant (OS : Linux SLES 9).
La compilation se passe bien, mais le link crashe.
environ 4000 messages du genre :
undefined reference to `std::ios_base::Init::~Init()'
undefined reference to `__cxa_end_catch'
undefined reference to `operator delete(void*)'
etc.
commande : g++ -ffloat-store -fexceptions -funsigned-char -Wall -Wno-uninitialized -Wcast-align -DSAPonUNIX -D__NO_MATH_INLINES -pthread -O3 -DNDEBUG -L/opt/ptime/sdk/odbc/lib -o dbif_demo dbif_demo.o dbif_st.o abflcnvg.o abtypes0.o zdater.o dbislib.o dbeuslib.o dbsslib.o abdbislib.o abbcdlib.o cslib.o rslg0lib.o rstr4lib.o rstr0lib.o perf0lib.o dptrclib.o ip0lib.o dllib.o rscpuc0lib.o saplib.o uxprtlib.o rfcuuid.o nilib.o filib.o -lodbc_gcc_33 -ldl -lm -lpthread -lstdc++ > make.out 2>&1
 
comme si la librairie c++ de base etait introuvable. j'ai essaye avec -lstdc++ et en modifiant l'ordre des librairies et ca ne change rien.
si quelqu'un a une idee, merci beaucoup d'avance.
laurent@september12doom.com


---------------
www.jesus-w-bush.com
Reply

Marsh Posté le 18-07-2005 à 21:17:53   

Reply

Marsh Posté le 18-07-2005 à 21:32:18    

rapport avec la prog ?

Reply

Marsh Posté le 18-07-2005 à 21:46:48    

???


---------------
www.jesus-w-bush.com
Reply

Marsh Posté le 18-07-2005 à 22:05:20    

ben tu vois, toi non plus tu vois pas ...

Reply

Marsh Posté le 18-07-2005 à 22:08:58    

tu es un programmeur genre "visual studio", non ?

Reply

Marsh Posté le 18-07-2005 à 22:39:33    

oui et alors ? Fais un programme minimal et essaie de reproduire.

Reply

Marsh Posté le 18-07-2005 à 23:14:16    

et alors, apparemment tu ne consideres pas le link comme un probleme interessant puisque VS fait ce genre de choses pour toi, a se demander si tu sais de quoi il s'agit.
si je pose ma question sur un forum, c'est que j'ai epuise toutes mes ressources. j'en suis au stade du programme test super minimal.

Reply

Marsh Posté le 19-07-2005 à 00:07:22    

dbif_demo.o dbif_st.o abflcnvg.o abtypes0.o zdater.o dbislib.o dbeuslib.o dbsslib.o abdbislib.o abbcdlib.o cslib.o rslg0lib.o rstr4lib.o rstr0lib.o perf0lib.o dptrclib.o ip0lib.o dllib.o rscpuc0lib.o saplib.o uxprtlib.o rfcuuid.o nilib.o filib.o
 
 
c'est ça que t'appelle minimal ?

Reply

Marsh Posté le 19-07-2005 à 00:09:31    

oui. je travaille sur un projet de plus de 32000 fichiers sources. la compilation prend plusieurs heures.

Reply

Marsh Posté le 19-07-2005 à 00:19:49    

faut savoir, c'est un module ou pas ?

Reply

Marsh Posté le 19-07-2005 à 00:19:49   

Reply

Marsh Posté le 19-07-2005 à 00:37:32    

2 cas :
- t'as pas compilé ton main en C++
- ton LD_LIBRARY_PATH (et autres sont pétés). Faut dire à g++ où aller chercher libstdc++, mais normalemnt, il est configuré pour le faire par défaut ... donc voir 1

Reply

Marsh Posté le 19-07-2005 à 00:37:52    

c'est. la liste d'objets ci-dessus représente le minimum viable du module.

Reply

Marsh Posté le 19-07-2005 à 00:43:21    

[00:38:49](AC 96%)[pts/5][/tmp][#6] ? 1
benoit@ibook >>> cat nocpp.cpp
#include <iostream>
 
int main()
{
  std::cout << "Hello World\n";
}
 
[00:39:00](AC 96%)[pts/5][/tmp][#7]
benoit@ibook >>> g++ -c nocpp.cpp
 
[00:39:03](AC 96%)[pts/5][/tmp][#8]
benoit@ibook >>> g++ -nostdlib nocpp.o
/usr/bin/ld: AVERTISSEMENT: ne peut trouver le symbole d'entrée _start; utilise par défaut 0000000010 000094
nocpp.o: dans la fonction « main »:
nocpp.cpp:(.text+0x16): référence indéfinie vers « std::cout »
nocpp.cpp:(.text+0x1a): référence indéfinie vers « std::cout »
nocpp.cpp:(.text+0x24): référence indéfinie vers « std::basic_ostream<char, std::char_traits<char> >&  std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char c onst*)»
nocpp.o: dans la fonction « __tcf_0 »:
nocpp.cpp:(.text+0x68): référence indéfinie vers « std::ios_base::Init::~Init()»
nocpp.o: dans la fonction « __static_initialization_and_destruction_0(int, int)»:
nocpp.cpp:(.text+0xc8): référence indéfinie vers « std::ios_base::Init::Init()»
nocpp.cpp:(.text+0xda): référence indéfinie vers « __dso_handle »
nocpp.cpp:(.text+0xde): référence indéfinie vers « __dso_handle »
nocpp.cpp:(.text+0xe0): référence indéfinie vers « __cxa_atexit »
nocpp.o:(.eh_frame+0x11): référence indéfinie vers « __gxx_personality_v0 »
collect2: ld returned 1 exit status


 
ça c'est un programme de test. c'est pas la peine de faire l'effarouché avec tes 4000 messages d'erreurs, on est pas devin.

Reply

Marsh Posté le 19-07-2005 à 00:44:43    

g++ -v nocpp.cpp
Using built-in specs.
Target: powerpc-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --enable-nls --without-included-gettext --enable-threads=posix --program-suffix=-4.0 --enable-__cxa_atexit --enable-libstdcxx-allocator=mt --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-gc=boehm --enable-java-awt=gtk --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --disable-multilib --disable-werror --enable-checking=release powerpc-linux-gnu
Thread model: posix
gcc version 4.0.1 (Debian 4.0.1-2)
 /usr/lib/gcc/powerpc-linux-gnu/4.0.1/cc1plus -quiet -v -D_GNU_SOURCE -D__unix__ -D__gnu_linux__ -D__linux__ -Dunix -D__unix -Dlinux -D__linux -Asystem=linux -Asystem=unix -Asystem=posix nocpp.cpp -quiet -dumpbase nocpp.cpp -auxbase nocpp -version -o /tmp/ccnMaUss.s
ignoring nonexistent directory "/usr/lib/gcc/powerpc-linux-gnu/4.0.1/../../../../powerpc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/powerpc-linux-gnu/4.0.1/../../../../include/c++/4.0.1
 /usr/lib/gcc/powerpc-linux-gnu/4.0.1/../../../../include/c++/4.0.1/powerpc-linux-gnu
 /usr/lib/gcc/powerpc-linux-gnu/4.0.1/../../../../include/c++/4.0.1/backward
 /usr/local/include
 /usr/lib/gcc/powerpc-linux-gnu/4.0.1/include
 /usr/include
End of search list.
GNU C++ version 4.0.1 (Debian 4.0.1-2) (powerpc-linux-gnu)
        compiled by GNU C version 4.0.1 (Debian 4.0.1-2).
GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=64389
 as -mppc -many -V -Qy -o /tmp/ccnA2qXZ.o /tmp/ccnMaUss.s
Version de l'assembleur GNU 2.16.1 (powerpc-linux-gnu) utilisant la version BFD 2.16.1 Debian GNU/Linux
 /usr/lib/gcc/powerpc-linux-gnu/4.0.1/collect2 --eh-frame-hdr -V -Qy -m elf32ppclinux -dynamic-linker /lib/ld.so.1 /usr/lib/gcc/powerpc-linux-gnu/4.0.1/../../../crt1.o /usr/lib/gcc/powerpc-linux-gnu/4.0.1/../../../crti.o /usr/lib/gcc/powerpc-linux-gnu/4.0.1/crtbegin.o -L/usr/lib/gcc/powerpc-linux-gnu/4.0.1 -L/usr/lib/gcc/powerpc-linux-gnu/4.0.1 -L/usr/lib/gcc/powerpc-linux-gnu/4.0.1/../../.. /tmp/ccnA2qXZ.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/powerpc-linux-gnu/4.0.1/crtsavres.o /usr/lib/gcc/powerpc-linux-gnu/4.0.1/crtend.o /usr/lib/gcc/powerpc-linux-gnu/4.0.1/../../../crtn.o


Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed