PDA

View Full Version : Porting da Windows a Linux


Clodo
14-02-2007, 01:25
Io e un mio amico stiamo realizzando un software p2p (non posto link per non fare spam) e scritto per piattaforma Windows utilizzando Visual Studio .NET 2003 e usando solamente codice C++ e librerie portabili (boost, xalan/xerces etc..), con un occhio nello strutturare le classi includendo api di windows specifiche solo attraverso classi C++ che funzionano da 'platform wrapper'.

Per realizzare una versione pre-compilata per le varie distribuzioni Linux ci manca quindi da implementare un pò di codice e compilare. Il problema è che sono un totale newbie su mondo di Linux, per cui mentre studio in giro volevo provare a sparare qualche domanda, sperando che qualcuno mi illumini :)

- Posso installare un'unica distribuzione di linux da usare come compilatore/debugger, e da lì generare le varie versioni per le altre distribuzioni, o devo compilare su ogni distribuzione specifica?

- La miglior risorsa per documentarsi sulle equivalenti api linux rispetto a quelle specifiche di windows (es. setThreadPriority, getTickCount, loadLibrary etc..) ? Un forum di riferimento tecnico sullo sviluppo in Linux possibilmente in italiano?

- Le API di base (generalmente kernel) variano molto da distribuzione a distribuzione?

- Una buona distribuzione per lo sviluppo e un IDE user-friendly per debuggare e compilare?

Grazie mille per l'aiuto!

ilsensine
14-02-2007, 09:08
- Posso installare un'unica distribuzione di linux da usare come compilatore/debugger, e da lì generare le varie versioni per le altre distribuzioni, o devo compilare su ogni distribuzione specifica?
Dipende. Puoi utilizzare librerie statiche per avere il massimo della portabilità, oppure distribuire le librerie specifiche che hai utilizzato.
In genere le librerie problematiche sono quelle in c++; le libc sono binariamente molto compatibili tra loro.

- La miglior risorsa per documentarsi sulle equivalenti api linux rispetto a quelle specifiche di windows (es. setThreadPriority, getTickCount, loadLibrary etc..) ?
1) l'esperienza
2) il sito msdn, dove viene parlato del porting di applicazioni unix su Windows (puoi quindi consultarlo "al contrario")
Un forum di riferimento tecnico sullo sviluppo in Linux possibilmente in italiano?
Questo


- Le API di base (generalmente kernel) variano molto da distribuzione a distribuzione?
No sono identiche

- Una buona distribuzione per lo sviluppo e un IDE user-friendly per debuggare e compilare?
1) debian e similari 2) eclipse, kdevelop

nb sposto in Programmazione

Clodo
14-02-2007, 10:52
Grazie mille!
Scusa se ho sbagliato forum, quello di Linux mi sembrava + adatto dato che la domanda principale era sulle distribuzioni. Grazie ancora! Ciao!

ilsensine
14-02-2007, 11:24
Chiedi pure quello che ti serve, l'argomento mi interessa :)

Che toolkit avete usato per la grafica?

71104
14-02-2007, 17:02
comunque come sito di riferimento per le API (o syscall) di Linux c'è anche www.linuxmanpages.com (sezioni 2 e 3 in particolare), o semplicemente il man :Prrr:
sconsiglio vivamente la roba in italiano :O
infatti anche MSDN è in inglese :read:

vizzz
14-02-2007, 17:24
sconsiglio vivamente la roba in italiano :O
infatti anche MSDN è in inglese :read:
anche perchè le traduzioni in italiano sono fatte automaticamente e fanno letteralmente sbellicare dalle risate.
comunque come toolkit consiglierei qt(che però hanno royalties) o gtk+ visto che si parlava di c++.

Clodo
14-02-2007, 22:47
Chiedi pure quello che ti serve, l'argomento mi interessa :)

Che toolkit avete usato per la grafica?

Nell'attuale versione Windows la grafica è una finestra di dialogo con un text-box per il log, e l'icona del software nella trayarea. Per tutto il resto, L'applicativo agisce da web-server (attraverso la libreria Asio, ora parte di Boost) per cui non ha grafica, tutto il front-end è gestito con pagine dinamiche xhtml generate via xml/xslt.

Grazie mille, sinceramente però abbiamo scadenze pressanti per cui stiamo focalizzandoci per arrivare ad una versione beta (siamo ancora in alfa), dopodichè affronteremo un porting verso Linux, presumibilmente tra qualche mese. Per ora stavo giusto dando un'occhiata in giro per farmi un'idea...
Magari ci risentiamo tra un po!! Grazie ancora a tutti!

71104
14-02-2007, 23:04
anche perchè le traduzioni in italiano sono fatte automaticamente e fanno letteralmente sbellicare dalle risate.
comunque come toolkit consiglierei qt(che però hanno royalties) o gtk+ visto che si parlava di c++. io invece consiglio wxWidgets (www.wxwidgets.org): semplifica il lavoro in una maniera meravigliosa, sembra quasi di lavorare in Java per quant'è facile :D

vizzz
14-02-2007, 23:58
io invece consiglio wxWidgets (www.wxwidgets.org): semplifica il lavoro in una maniera meravigliosa, sembra quasi di lavorare in Java per quant'è facile :D
il porting un po meno imho, portare da win a linux e viceversa con le wx è un delirio.
molti metodi non sono comuni per i due os.
e poi non esiste un tool ufficiale per disegnare interfaccie grafiche.

tomminno
15-02-2007, 11:10
il porting un po meno imho, portare da win a linux e viceversa con le wx è un delirio.
molti metodi non sono comuni per i due os.
e poi non esiste un tool ufficiale per disegnare interfaccie grafiche.

Mah sulla guida sono specificati i pochi controlli o metodi specifici, io ho usato le wx su entrambi i sistemi e la compilata va alla prima, non so cosa vi serva di così particolare da non girare su Linux e Win.

Per gli editor automatici, mi chiedo ma a che servono? Sono solo una perdita di tempo.
Oltretutto le wx hanno i boxsizer che sono facili da usare e di una comodità impressionante (basta provare una volta le MFC per capire quanto siano legnose a confornto con le wx)

k0nt3
15-02-2007, 13:24
consiglierei qt(che però hanno royalties)
se il programma è opensource no :read:

ps. le QT4 sono almeno una spanna sopra WxWidgets ;) senza nulla togliere alla bontà di queste ultime
se poi parliamo di QTDesigner... http://www.trolltech.com/products/qt/learnmore/video/demos/browser insomma ci siamo capiti :)

ilsensine
15-02-2007, 14:05
Aggiungo all'elenco le mie care fox (http://www.fox-toolkit.org). Non hanno un editor, sono così semplici che non ce n'è bisogno.

jappilas
15-02-2007, 14:42
Aggiungo all'elenco le mie care fox (http://www.fox-toolkit.org). Non hanno un editor, sono così semplici che non ce n'è bisogno.a proposito... hai visto il fork TnFox (http://nedprod.com/Tn/index.html)? che ne pensi? ;)

ilsensine
15-02-2007, 15:24
a proposito... hai visto il fork TnFox (http://nedprod.com/Tn/index.html)? che ne pensi? ;)
Che ancora non ho trovato il tempo per dargli una occhiata maledizione...