2013-11-26 11 views
7

Sto cercando di creare cuneiform in Windows. Io uso CMake per generare la build e selezionare l'opzione Makefile MinGW.MinGW tenta di utilizzare cmd.exe da Makefiles CMake

Internamente i Makefile hanno percorsi di stile C: \ pathname DOS anziché uno stile UNIX e SHELL è impostato su cmd.exe (noto che la dir bin di MinGW ha uno script cmd ma non cmd.exe) piuttosto che bash o sh.

Avvio bash facendo doppio clic su C:\MinGWzmsys\1.0\bin\bash.exe. Quando provo a eseguire make lo dice:

bash.exe"-3.1$ cd /c/cuneiform/build/ 
bash.exe"-3.1$ make 
Microsoft Windows [Version 6.1.7601] 
Copyright (c) 2009 Microsoft Corporation. All rights reserved. 
c:\cuneiform\build> 

Devo quindi digitare tre volte per tornare in bash! Perché?

Ho provato a generare Makefile che usano percorsi di stile unix e chiamano sh ma non riescono a far sì che CMake lo faccia per qualche motivo.

Idealmente dovrei provare questo da bash o DOS? Se provo da DOS (dopo aver impostato un percorso minimo per path = C: \ MinGW \ msys \ 1.0 \ bin; C: \ Windows \ System32), faccio morire in modo simile.

Normalmente scrivo C++ sotto HP-UX o Java sotto Windows, quindi MinGW e CMake sono tutti nuovi per me, come sono sicuro che tu possa dire.

+4

'cmake ... -G" MSYS Makefile "...' + 'make' o' cmake ... -G "Makefile MinGW" ... '+' mingw32-make'. –

risposta

7

Secondo cmake doc, su Windows, MinGW Makefiles dovrebbe essere usato quando il guscio è cmd.exe e MSYS Makefiles quando la shell è sh.exe.

Provare cmake -G "MinGW Makefiles" quando all'interno di una shell bash ti darà un errore, quindi dovresti essere coerente con il tuo ambiente. Se non hai bisogno di strumenti unix per costruire il tuo progetto (grep, sed, ecc.), Non hai davvero bisogno di eseguire bash allora.

Nella mia esperienza, ho trovato che la suite TDM GCC funziona meglio se non si è interessati all'ambiente Unix e agli strumenti e serve solo il compilatore.