Newsgroup: it.comp.lang.c++
Titolo: Portare un programma C++

Salve a tutti. Vi espongo il problema.
Devo portare un software scritto in origine in
C++ su una piattaforma hardware che possiede
un compilatore g++, ma dove non ho a disposizione
la standard c++ library (quella di GNU fornita con
il compilatore non funziona su quella piattaforma,
per ragioni che non ho voglia di spiegare per ora...).
Mi servirebbe una di queste due cose:
a) o un convertitore di codice, che traduce il C++ in
C, in modo da ottenere sorgenti C da compilare con
il compilatore della piattaforma...
b) oppure una stdlib opensource, che posso ricompilare
da compilatore C e che possa essere linkata dal C++.
Qualcuno mi aiuta ?
Ciao

 Qualcuno mi aiuta ?
La vedo grama. Secondo me senza spendere tempo e presumibilmente
denaro non te la cavi.
Ciao,
Nicola


-- 
cc = callcc {|cc| cc.call cc}; cc.call cc


Le ho già viste entrambe. Stiamo portando Tesseract su
ND ed essendo scritto in C++, ci serve la compatibilità
C++ (che non abbiamo...).
Sto pensando di ricompilare stlport, però devo trovare
il modo di adattarlo alle esigenze del psp-g++. I primi
tentativi sono falliti (errori del make e quanto altro...)
Ora vedrò come proseguire...

 tentativi sono falliti (errori del make e quanto altro...)
Leggendo la documentazione e spulciando un po` nei sorgenti delle STL di 
SGI (solo headers, compatibile g++ 2.8 ed egcs...) probabilmente e` piu` 
facile utilizzare quelle piuttosto che stlport che e` un progetto + 
sicuramente + evoluto e performante, ma anche, di conseguenza, piu` 
complesso.
Bye,
  Gabry

"Gabriele Greco" <gabrie...@REMOVEUPPERCASETOMAILtin.it> ha scritto nel 
messaggio news:2GZsj.30758$Xg7....@tornado.fastwebnet.it...

Perņ, quando provo a compilare Tesseract con il
psp-g++ (3.4) ottengo subito errori di compilazione.
E poi, una libreria come STL, bisognerebbe comunque
della libreria std del C++ per linkare correttamente,
non credo che i soli headers possano tradurre tutta
l'infrastruttura del C++.
O sbaglio ?

 l'infrastruttura del C++.
  > O sbaglio ?
Ni, e` possibile che libstdc++ venga usata anche per le funzioni di rtti 
e gestione exception, anche se penso che parte di quella gestione la 
faccia libgcc.
In ogni caso ci sono metodi x linkare staticamente la libreria del C++ 
se e` quello il problema.
Io ad esempio con un cross-gcc 3.4 non ho avuto alcun problema a 
compilare un piccolo gioco scritto con SDL che utilizza in modo esteso 
l'STL su architettura arm-wince (il crosscompiler per windowsCE si 
comporta come il mingw32, ovvero linka sempre staticamente la libreria 
del c++ e la libgcc).
X emulare lo stesso comportamento su linux tipicamente si fa cosi`:
        -Wl,"-Bstatic" -lstdc++ -Wl,"-Bdynamic" -lm -lm -Wl,"-Bstatic" \
        -lgcc -Wl,"-Bdynamic" -lc -lc -Wl,"-Bstatic" -lgcc
Bye,
  Gabry

"Gabriele Greco" <gabrie...@REMOVEUPPERCASETOMAILtin.it> ha scritto nel 
messaggio news:l1_sj.30792$Xg7....@tornado.fastwebnet.it...

No, la questione è molto più complessa.
In soldoni, dovrei compilare la libreria STLPort in modo da
avere una libreria statica da linkare staticamente al codice
delle applicazioni per nd.
Infatti, su nd usiamo una ABI per le librerie che è diversa da
quella usata dalle librerie di GNU che vengono già precompilate
e fornite pronte con il PSPSDK.
Risultato, la libstdc++ di GNU non è compatibile con nd e ne
dobbiamo ricompilare una noi compatibile con ciò che ci
serve.
Ieri ho provato a compilare STLPort, ma ho dei problemi.
Qualcuno sarebbe così gentile da provare a compilare
STLPort per x86 sul suo PC ? Vorrei fare un esperimento
e mi servirebbe il log di compilazione....