Sto creando obiettivi aggiuntivi utilizzando qmake
e sto provando a fare due cose contemporaneamente: creare una nuova cartella e copiare una DLL in quella cartella. Entrambe le azioni separate funzionano bene, ma i due insieme non funzionano.Come eseguire più comandi con una destinazione aggiuntiva in QMake
something.target = this
# This works:
# something.commands = mkdir newFolder
# This works too (if newFolder exists)
# something.commands = copy /Y someFolder\\file.dll newFolder
# This doesn't work:
something.commands = mkdir newFolder; \
copy /Y someFolder\\file.dll newFolder
QMAKE_EXTRA_TARGETS += something
PRE_TARGETDEPS += this
Ho pensato che questo era la sintassi destra (ho trovato esempi simili, per esempio here e here), ma sto ottenendo il seguente errore:
> mkdir newFolder; copy /Y someFolder\\file.dll newFolder
> The syntax of the command is incorrect.
è la sintassi differente su differenti piattaforme o qualcosa ? Sto lavorando su Windows 7, con Qt 5.0.1.
Fantastico, funziona come un fascino! Ma per curiosità: c'è una ragione per cui altri thread sembrano impiegare il '; \ 'come interruzione di riga senza problemi. Questa piattaforma è dipendente? – Yellow
Potrebbe essere una funzione specifica della shell per unire più comandi in uno solo. Su Windows e & funzionerebbe con la shell cmd standard per esempio. Non conosco shell unix-like abbastanza bene da rispondere con certezza. –
@SergeySkoblikov: Sotto Unix, anche '&&' dovrebbe funzionare -> esegue il secondo comando dopo il primo, ma solo nel caso in cui il primo sia stato completato con successo. Solo '&' eseguirà comunque il secondo comando. Sembra essere lo stesso sotto Windows? – mozzbozz