[ lenny @ 30.06.2004. 14:14 ] @
Satima sam se mučio sa interesantnom linker greškom na Fedora Core 2 Linuxu:

: undefined reference to `NekiNamespace::NekaKlasa::NekaFunkc[in-charge](bool, bool)'
collect2: ld returned 1 exit status

Na kraju sam ustanovio da sam (greškom) jedan od source fajlova ranije kompajlirao sa gcc, a ceo projekat sam prevodio sa g++, bez ponovnog prevođenja svih fajlova... Ovako sam imao stanje, u kom su svi fajlovi prevedeni sa g++, sem tog jednog. Znači imao sam nekompatibilne binarne fajlove, koji su lepo zbunili linker (i mene, naravno)...
[ leka @ 30.06.2004. 16:47 ] @
Sasvim je moguce da se miksuju objektni fajlovi generisani GCC C i GCC C++ kompajlerima. Cak sta vise, to je vrlo cesta pojava. Da bi sve radilo kako treba programer mora da unapred odredi odakle ce sta pozivati i u skladu sa svojom odlukom C++ funkcije (metode) eksportovati sa extern "C" klauzulom.
Ljudi uglavnom, kada miksuju C i C++, sve klase eksportuju na taj nacin. Najveci problem je kada zelis iz C-a da pozivas nesto - tada ljudi koriste nesto sto se zove "flattening C++ classes " o cemu mozes naci dosta materijala (ako ti treba) putem google-a ili jos bolje na CiteSeer-u.
Najpoznatiji alat koji pomaze u ovom slucaju je poznati SWIG (http://www.swig.org).