Tworzę dodatkowe cele przy użyciu qmake
, a ja próbuję wykonać dwie rzeczy w tym samym czasie: utworzyć nowy folder i skopiować dll do tego folderu. Oba działania działają oddzielnie, ale oba nie działają.Jak uruchomić wiele poleceń z dodatkowym celem w 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
myślałem, że to była właściwa składnia (znalazłem podobnych przykładów na przykład here i here), ale otrzymuję następujący błąd:
> mkdir newFolder; copy /Y someFolder\\file.dll newFolder
> The syntax of the command is incorrect.
jest składnia różne na różnych platformach lub coś ? Pracuję w systemie Windows 7, z Qt 5.0.1.
Fantastyczny, działa jak urok! Ale z ciekawości: czy istnieje powód, że inne wątki wydają się używać "; \ "jako przerwa linii bez problemu. Czy ta platforma jest zależna? – Yellow
Może to być specyficzna dla powłoki funkcja łączenia wielu poleceń w jedną. W Windowsie i & działa na przykład ze standardową powłoką cmd. Nie znam skorup typu unix wystarczająco dobrze, by odpowiedzieć z pewnością. –
@SergeySkoblikov: W systemie Unix '&&' powinno działać również -> uruchamia drugie polecenie po pierwszym, ale tylko w przypadku, gdy pierwszy został pomyślnie zakończony. Tylko '&' uruchomi drugie polecenie. Wydaje się być taki sam pod oknami? – mozzbozz