2016-07-06 42 views
5

Recentemente ho iniziato a utilizzare il sottosistema Windows per Linux (WSL) per verificare se il mio progetto di microcontroller basato su arm-none-eabi-gcc per Linux Makecreava "nativamente" in Finestre. Con mia sorpresa, la tool chain e gli strumenti di sviluppo basati su Linux sono stati installati e hanno funzionato perfettamente al primo tentativo, senza modifiche al Makefile.Creazione di una build basata su bash WSL da Visual Studio 2015

Quindi questo mi ha fatto pensare di provare a modificare tutto il codice in Visual Studio utilizzando le funzionalità IDE mentre eseguivo la build effettiva nell'ambiente Linux & fornito in WSL.

Purtroppo, quando si specifica un "Costruire riga di comando" nelle opzioni NMAKE per il mio progetto di Visual Studio, mettendo in "C:\Windows\System32\bash.exe build.sh" non funziona perché:

'C:\Windows\System32\bash.exe' is not recognized as an internal or external command, operable program or batch file.

Questo è strano perché ho specificato il percorso completo e non è stato in grado di trovare l'eseguibile bash WSL, e anche il tentativo di aggiungerlo come "strumento esterno" non sembra funzionare perché l'eseguibile non viene visualizzato nella finestra di selezione nonostante sia in grado di vedere altro eseguibili nella stessa directory.

Alcune opinioni fuori tema: se Microsoft può far interagire perfettamente Visual Studio e WSL, è probabile che io passi dalla configurazione della macchina virtuale di Ubuntu a un ambiente di sviluppo basato su WSL.

+0

Eventuali duplicati di [Windows Bash e Visual Studio Codice:? Come posso lanciare bash come un compito run] (http://stackoverflow.com/questions/37248106/windows-bash- e-visual-studio-code-how-can-i-launch-bash-as-a-run-task) – stijn

+1

Non un duplicato - "Visual Studio Code" è un programma completamente diverso da "Visual Studio". La risposta sull'utilizzo di C: \ Windows \ sysnative \ bash.exe come percorso è interessante, ma non funziona ancora per me. – DouglasHeriot

+0

@Jon hai mai trovato una soluzione? – DouglasHeriot

risposta

0

Ecco come bisogna farlo:

Nmake non è un'applicazione a 64 bit, in modo che quando si tenta di utilizzare le utilità di Windows e system32, WoW64 trucchi IT in cerca in una posizione diversa.

Il modo in cui si deve lanciare da un'applicazione a 32-bit è:

%windir%\sysnative\bash.exe

Tuttavia, il comando è anche valido. Sarà necessario fare in questo modo:

%windir%\sysnative\bash.exe -c "sh build.sh"

o forse

%windir%\sysnative\bash.exe -c "./build.sh"

se DriveFS autorizzazioni consentono l'esecuzione.

altrimenti tenterà di eseguire build.sh come comando nel $ PATH dell'utente di linux.

Fonte: https://github.com/Microsoft/BashOnWindows/issues/870

Problemi correlati