CMake e Windows

di Spinus

Avete seguito la breve guida su CMake e adesso volete compilare il vostro programma sotto Windows, ma come fare senza installare pesanti programmoni per sviluppare (detti anche IDE) ?

E’ molto semplice, basta usare MinGW!

Come installo MinGW?

Dalla pagina di download di MinGW scaricare MinGW Automated Installer che si occuperà di scaricare tutte gli archivi necessari (selezionare i linguaggi che si vogliono utilizzare e mingw make)

E il debugger?

La soluzione più semplice è installare la versione di GDB disponibile sul sito di MinGW

Nota: scaricare sempre la versione “current release”, così si è sicuri di utilizzare versioni stabili.

Una volta installati i programmi necessari non resta che aggiungere alla variabile d’ambiente PATH, il percorso contentente gli eseguibili di MinGW: (aggiongere dir)

Come compilare?

Creare il makefile con il comando

cmake -G”MinGW Makefiles” .

compilare utilizzando il comando make

Gdb non è molto comodo? Come posso debuggare in modo più semplice?

In questo caso bisogna installare Eclipse o un altro IDE che supporti i makefile di MinGW e Gdb!

Importare i sorgenti in Eclipse si può creare un progetto make C/C++ e importare “da filesystem” i file che compongono il programma da compilare (probabilmente ci sarà qualche settaggio da rifinire).
Per debuggare il programma basterà creare una configurazione di debug e impostare come debugger Gdb o mingw debugger e, poi, sarà sufficiente impostare i breakpoint voluti e far partire l’esecuzione!

P.S. questa guida è un bozza, ho seguito le procedure qui descritte e tutto funziona, ma quando ho tempo proverò su un altro pc per assicurarmi di non aver dimenticato nulla!

UPDATE: Esiste un frontend grafico per gdb che funziona sotto windows: si chiama insight. Per utilizzarlo basta scaricare mingw-insight-6.3.exe (o altre versioni) e scompattarlo nella directory di MingGW. Insight contiene tra l’altro anche gdb.

Io l’ho provato ed è molto pratico!

10 commenti to “CMake e Windows”

  1. Grazie per questa guida…proprio quello che cercavo😉

    • Sono contento che sia utile a qualcuno🙂 Se hai qualche consiglio su come migliorarla o se secondo te c’è qualcosa da aggiungere dimmi pure😛

      • Ciao,
        Forse tu mi puoi aiutare.
        Io ho dei sorgenti in c/c++ nelle varie cartelle e ho un file CMakelists.txt che mi compila tutto in una volta sotto ubunt con il comando cmake.
        Ho bisogno di creare dei file eseguibili anche per winz e volevo usare MinGW.
        E’ possibile utilizzare il CMakelists.txt con MinGW? Come? Oppure come posso compilare questi sorgenti con MinGW?
        Ho installato anche cmake per winz, ma di da degli errori quando compilo.

        Grazie
        Sanà

      • Ciao,
        Forse mi potresti aiutare.
        Ho dei file sorgenti in c/c++ in varie cartelle e ho un CMakeLists.txt per compilarli in una volta col comando cmake. Con ubuntu va tutto a buon fine, ma voglio creare anche eseguibili per windows.
        Quindi, come faccio su windows? Ho provato ad installare cmake per winz, ma quando compilo mi da degli errori. Con MinGW è possibile? Come?

        Grazie
        Sanà

  2. Scusa sei ci ho messo un po’ a rispondere…certo che puoi compilare sotto windows, bisogna solo configurare correttamente i vari componenti…
    Prima di tutto se digiti “make” in console trova l’eseguibile?
    Se digiti cmake anche? Se non trova i comandi devi controllare che nella variabile d’ambiente PATH siano indicati correttamente i percorsi di MinGW e Cmake
    Se l’errore è un altro puoi incollarmi l’output così cerchiamo di capire quale sia il problema…

  3. Ciao Spinus,
    Non ti preoccupare. Nella variabile d’ambiente PATH è tutto configurato correttamente, in questo modo:
    ;D:\appl\CMake 2.8\bin;D:\appl\MinGW\bin
    Giusto?
    Se eseguo make, mi dice che non è riconosciuto come comando …. Come mai?
    Che comando devo usare esattamente, se variabile d’ambiente è giusto?

    Grazie ancora🙂

  4. Scusami,
    Ho fatto copia incolla, ma non è venuto bene il percorso:
    ;D:\appl\CMake 2.8\bin;D:\appl\MinGW\bin

    Cmq, mi sto sbattendo la testa sui sorgenti che si trovano qui:
    http://github.com/planetbeing/xpwn

    Quello che mi interessa, quello di creare libpwnpetheus.dll come descritto nel file BUILD.

    Ciao
    Sanà

    • I path dovrebbero essere corretti..ho reinstallato mingw sotto windows e ho notato che non c’è il comando “make”, ma si chiama “mingw32-make.exe”…così su due piedi non ricordo come mai si chiami mingw32-make anzichè make nè perché sulla vecchia installazione usavo make (forse avevo fatto un link)…
      Prova ad usare il comando mingw32-make e dovrebbe andare!

  5. Ciao,
    Ho provato con cmake -G”MinGW Makefiles”, ma mi da un errore:

    D:\DOCUMENTI SANA’\Download\build\pwn>cmake -G “MinGW Makefiles”
    — Could NOT find ZLIB (missing: ZLIB_LIBRARIES ZLIB_INCLUDE_DIRS)
    CMake Error at minizip/CMakeLists.txt:4 (message):
    zlib is required for libminizip!

    — Configuring incomplete, errors occurred!

    Ho scaricato sia zlib1.dll sia i sorgenti, ma nulla.
    Secondo te come posso risolvere?

    Saluti
    Sanà

  6. Credo ci sia qualche problema nei percorsi e non trova le ZLIB…non ho molto tempo altrimenti proverei a compilare io i sorgenti…dai un’occhiata qui
    http://www.cmake.org/pipermail/cmake/2007-October/016687.html
    oppure prova a cercare se c’è qualche variabile d’ambiente in cui puoi impostare i percorsi di ricerca di ZLIB…

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: