Mi chiedo in quali situazioni si utilizza Cygwin per compilare il codice C e quando si opta per MinGW. Sono arrivato a What is the difference between Cygwin and MinGW? descrivendo le differenze tra Cygwin e MinGW.Quando utilizzare Cygwin o MinGW per compilare il codice C?
Per quanto ho capito, si può dire quanto segue:
- Cygwin: Permette compilazione del codice sorgente C per i sistemi operativi compatibili POSIX per funzionare su Windows (richiede l'cygwin1.dll). Ad esempio, potrei compilare un'applicazione utilizzando l'API pthreads per Windows, sebbene Windows non implementi l'API.
- MinGW: consente di compilare il codice sorgente C compatibile con Windows. Quindi, usando l'esempio di cui sopra, non ho potuto utilizzare l'API pthreads durante la compilazione con gcc in MinGW ma sarebbe stato necessario utilizzare l'API dei thread offerta da Windows. Invece di usare il compilatore gcc MinGW, potrei anche usare un compilatore diverso, ad es. quello fornito con VC++.
Tuttavia, la mia comprensione sembra essere sbagliata, perché sono stato in grado di compilare un programma fittizio che includeva pthread.h con MinGW. Cosa ho capito male?
Quindi presumo che questa porta Win32 pthreads sia inclusa in MinGW? – simon
@simon: non ha usato per essere, ma a quanto pare è un pacchetto base MinGW dal 2010-02-18 (vedi http://sourceforge.net/projects/mingw/files/MinGW/Base/pthreads-w32/) – Christoph
@Christoph Cygwin non impone un layout di memoria DLL fisso come tale, ma deve essere in grado di caricare DLL in un processo biforcato con gli stessi indirizzi del genitore. – ak2