39Fermer41
Kevin KoflerLe 14/06/2008 à 03:55
Bah, le vrai problème, c'est donc ça:
Undefined symbols:
  "___cxa_pure_virtual", referenced from:
      [5 locations]
  "operator new(unsigned long)", referenced from:
      [19 locations]
  "operator delete(void*)", referenced from:
      [18 locations]
ld: symbol(s) not found


J'explique ton problème:
* TiEmu essaie de linker l'exécutable final avec gcc, pas g++.
* Or, il y a du C++ dedans.
* Or, gcc ne linke pas automatiquement le runtime C++, seulement g++ le fait.
* Or, le comportement de ld est différent sous GNU/Linux (objets ELF) et OS X (objets Mach-O):
- Sous GNU/Linux, si b.so est linké avec c.so et l'exécutable a est linké avec b.so, a peut automatiquement référencer les symboles dans c.so aussi (et non pas seulement ceux de b.so).
- Sous OS X, si b.dylib est linké avec c.dylib et l'exécutable a est linké avec b.dylib, a ne peut utiliser que les symboles de b.dylib, il faut le linker explicitement avec c.dylib également pour accéder à ses symboles.
* Ici, la librairie b, ce sont les libs Qt/KDE, la librairie c, c'est la libstdc++. Sous GNU/Linux, linker avec KDE linke automatiquement aussi la libstdc++, c'est pour ça que ça marche sous GNU/Linux.

Je vais corriger ça.