È necessario capire che cosa sono syscalls. Su Linux, sono l'API di terra user più bassa possibile (al contrario, Win32 API probabilmente mischia le reali syscalls del kernel con alcune funzioni di librerie.libc
fa anche questo mix su Linux). fork(2), execve(2), open(2), pipe(2), mmap(2), read(2), poll(2), close(2), dup2(2), sigaction(2) sono chiamate di sistema importanti (ma ci sono circa 300 di loro).
Non aspettatevi che ogni funzionalità di Windows sia disponibile su Linux (e viceversa). Non pensare nemmeno a un simile equivalente. Ottieni una mentalità diversa su Linux. (In particolare, processes sono molto diversi su Linux e su Windows).
Non dimenticare che Linux è il software gratuito e puoi immergerti nel codice sorgente di ogni funzione che stai utilizzando su Linux. Leggi, cerca, migliora ...
Leggi prima la pagina man intro(2) e diverse altre pagine man (in particolare syscalls(2), intro(3) ecc ...). Leggi anche per es. Advanced Linux Programming e Advanced Unix Programming.
Alcune librerie cercano di calcolare e fornire un'astrazione comune per Posix (ad es. Linux) e Windows. In particolare Qt (e anche Gtk).
Se si è interessati all'interfaccia grafica, comprendere l'importante ruolo di X11 (notare che il server X11 è più vicino alla tastiera dello schermo &, la maggior parte delle applicazioni grafiche sono client X11). Nel 2016, X11 tende ad essere sostituito da Wayland (ma non si noterà quell'implementazione "dettaglio" - molto importante - se si codifica con Qt o GTK)
Se si scrive un'applicazione utilizzando solo chiamate Qt (quelli non documentati come specifici per Linux o Windows) oltre alle funzioni standard di C++, dovrebbe essere fonte portatile da Linux a Windows e viceversa.
fonte
2013-01-04 18:04:36
[Mainsoft] (http://www.mainsoft.com/content/mainsoft-unix-and-linux-overview) offre una possibilità (anche se a un prezzo serio). –
Qt è un livello di astrazione. Ha implementazioni specifiche della piattaforma che mappano i comandi Qt all'operazione nativa sottostante. Dipende da quale win32 API si desidera effettuare il porting. Alcuni sono così specifici di Windows che è improbabile che possano funzionare altrove. – Chriseyre2000
Win32 è un'enorme suite di librerie semi-correlate per tutto, dagli elementi della GUI alla grafica 3D alla manipolazione del socket. Linux è molto più modulare e probabilmente vorrai scegliere e scegliere diverse librerie da utilizzare nel porting del tuo progetto. – meagar