Russian Qt Forum

Qt => Вопросы новичков => Тема начата: QuAzI от Ноябрь 28, 2012, 15:34



Название: qmake native slash
Отправлено: QuAzI от Ноябрь 28, 2012, 15:34
Однако
project.pro
Код:
win32: docs.commands = cd $$PWD ; \"%ProgramFiles%\\doxygen\\bin\\doxygen.exe\" $$PWD\\Doxyfile
На выхлопе
Код:
cd E:/qu/devel/POST000-Converter ; "%ProgramFiles%\doxygen\bin\doxygen.exe" E:/qu/devel/POST000-Converter\Doxyfile
Где разумеется смена директории давится, не понимает такие слеши, в итоге автоматизировать сборку доки не очень на винде получается. Т.е. оно бы пошло, если бы doxygen запускался в директории проекта.
Перерыл qmake variable reference, ещё кучу всего, но ответов так и не нашёл.
1) Как в PRO-файле использовать нативные слеши ?
2) Как запускать софт в директории с исходниками проекта не выполняя cd $$PWD ?



Название: Re: qmake native slash
Отправлено: Пантер от Ноябрь 28, 2012, 15:39
Попробуй 3 слеша.


Название: Re: qmake native slash
Отправлено: QuAzI от Ноябрь 28, 2012, 16:28
Где их вставить? В данном случае cd $$PWD заменяется на cd E:/qu/devel/POST000-Converter сборщиком, я не сам его заполняю, в итоге виндовый CD давится от обратных слешей.


Название: Re: qmake native slash
Отправлено: lesav от Ноябрь 28, 2012, 19:27
Я использовал когда-то такое:


Код:
# Запуск комманды после сборки
win32:SHELL=cmd /C
else: SHELL=sh -c
EXTENSION=$$member(SHELL, 0)

RUN_SCRIPT=$$DESTDIR/../_create_run_script.$$EXTENSION

win32:{
  # Замена слешей для WINDOWS
  RUN_SCRIPT=$$replace(RUN_SCRIPT, /, \\)
}
QMAKE_POST_LINK = $$SHELL $$RUN_SCRIPT $$DESTDIR $$TARGET $$[QT_INSTALL_BINS] $$EXTENSION $$ORIG_TARGET $$PROG_EXT


Название: Re: qmake native slash
Отправлено: Alex Custov от Ноябрь 28, 2012, 19:52
попробуй cd \"$$PWD\"


Название: Re: qmake native slash
Отправлено: lesav от Ноябрь 28, 2012, 20:15
win32:{
  # Замена слешей для WINDOWS
  CD_PWD=$$replace(PWD, /, \\)
} else : {
  CD_PWD=$$PWD
}

# И потом уже
cd $$CD_PWD



Название: Re: qmake native slash
Отправлено: QuAzI от Ноябрь 29, 2012, 09:54
Самое оно, спасибо. Как-то я проглядел $$replace раньше :(


Название: Re: qmake native slash
Отправлено: LisandreL от Ноябрь 29, 2012, 14:47
Где их вставить? В данном случае cd $$PWD заменяется на cd E:/qu/devel/POST000-Converter сборщиком, я не сам его заполняю, в итоге виндовый CD давится от обратных слешей.
Это в какой винде, простите? В 98-ой что ли? XP уже точно прямые слеши понимала (а обратные, про которые вы написали, для виндоус вообще родные).
Может у вас на самом деле проблема в том, что CD без ключа /d с одного диска на другой не перейдёт (с c: на e:)?


Название: Re: qmake native slash
Отправлено: QuAzI от Ноябрь 29, 2012, 14:56
Смотрим аттач и удивляемся. Win XP SP3 RU с довольно свежими обновлениями


Название: Re: qmake native slash
Отправлено: Bepec от Ноябрь 29, 2012, 15:01
Экранировать кавычками пробовали?


Название: Re: qmake native slash
Отправлено: QuAzI от Ноябрь 29, 2012, 15:07
Винда такая винда... помнится когда-то натыкался на разное поведение команд в CMD/BAT на разных ПК, а тут вообще прикол. В общем я бы не сказал что винда адекватно поддерживает обратные слеши


Название: Re: qmake native slash
Отправлено: LisandreL от Ноябрь 29, 2012, 15:09
Мда, был не прав, извините.


Название: Re: qmake native slash
Отправлено: Alex Custov от Ноябрь 29, 2012, 15:20
Это в какой винде, простите? В 98-ой что ли? XP уже точно прямые слеши понимала (а обратные, про которые вы написали, для виндоус вообще родные).
Может у вас на самом деле проблема в том, что CD без ключа /d с одного диска на другой не перейдёт (с c: на e:)?

Это давний баг в cmd, и его чинить уже не будут по религиозным причинам. Там есть определённые обходные манёвры типа заключения пути в кавычки, или добавления unix slash-ей к пути с windows slash-ами. Например:

Цитировать
F:\>copy /y "F:/AC/soft/THT/ts/ru.qm" .
Не удается найти указанный файл.
Скопировано файлов:         0.

F:\>copy /y "F:/AC/soft/THT/ts\ru.qm" .
Скопировано файлов:         1.


Название: Re: qmake native slash
Отправлено: Bepec от Ноябрь 29, 2012, 15:22
Думаю не стоит извиняться. Помоему просто старьё стоит, а не новая винда.

Почему? Смотреть в приложениях.

Создание папки/копирование/перенос работают с любыми слешами. Смешивать не пробовал.


Название: Re: qmake native slash
Отправлено: Alex Custov от Ноябрь 29, 2012, 15:26
Думаю не стоит извиняться. Помоему просто старьё стоит, а не новая винда.

Мой тест на Win7 со всеми обновлениями


Название: Re: qmake native slash
Отправлено: QuAzI от Ноябрь 29, 2012, 15:30
Ну вот, теперь если используешь то, что работает давно и уверенно на 80 хостах в филиале (22 филиала в нашей области, мой далеко не самый крупный, а конторка размазана по всей РБ), то ты уже безнадёжно устарел, срочно обновиться до гламурненьких Vista/Seven/8, изнасиловать домен, заново поставить почтовый сервер (попутно под всё это закупить железо на свои кровные) - ради новых граблей и геммороя с обратной совместимостью?


Название: Re: qmake native slash
Отправлено: Bepec от Ноябрь 29, 2012, 15:52
А теперь находим где в моих постах слово Windows 7 и понимаем, что сагрились сами на себя.

Новьё - обновление на винду ставьте. Нормальное.

PS если глаза слабоваты, опишу словами - у меня поднята виртуалка с системой XP SP3 2010 года выпуска. Реагирует адекватно на любые команды с любыми слешами. 


Название: Re: qmake native slash
Отправлено: QuAzI от Ноябрь 29, 2012, 16:02
А теперь находим где в моих постах слово Windows 7 и понимаем, что сагрились сами на себя.

Новьё - обновление на винду ставьте. Нормальное.

PS если глаза слабоваты, опишу словами - у меня поднята виртуалка с системой XP SP3 2010 года выпуска. Реагирует адекватно на любые команды с любыми слешами. 
Ещё выше я писал >> Win XP SP3 RU с довольно свежими обновлениями.
В т.ч. секюрити фиксы и критические обновления по июль этого года. Учитывая что M$ забило на обновления для XP, трудно прочесть ваше сообщение иначе как "меняйте на новую винду".


Название: Re: qmake native slash
Отправлено: Bepec от Ноябрь 29, 2012, 16:37
PS если глаза слабоваты, опишу словами - у меня поднята виртуалка с системой XP SP3 2010 года выпуска. Реагирует адекватно на любые команды с любыми слешами. 


Название: Re: qmake native slash
Отправлено: Alex Custov от Ноябрь 29, 2012, 16:49
PS если глаза слабоваты, опишу словами - у меня поднята виртуалка с системой XP SP3 2010 года выпуска. Реагирует адекватно на любые команды с любыми слешами. 

У тебя поднята какая-то Chip-овская сборка


Название: Re: qmake native slash
Отправлено: Bepec от Ноябрь 29, 2012, 16:57
Поверь, консоль чиповской сборки 2010 года не моложе последних обновлений оригинальной XP.
Можешь поверить на слово, простая сборка так же реагирует. Жаль только у меня её на виртуалке нету )


Название: Re: qmake native slash
Отправлено: Alex Custov от Ноябрь 29, 2012, 17:16
Поверь, консоль чиповской сборки 2010 года не моложе последних обновлений оригинальной XP.
Можешь поверить на слово, простая сборка так же реагирует. Жаль только у меня её на виртуалке нету )

Реагировать она должна на все случаи, а не на некоторые. Исключения я привёл, возможно есть и ещё баги. Вот баг и в XP:

(http://i48.fastpic.ru/thumb/2012/1129/9d/cb6cac5a216f1f5f227300a85a832c9d.jpeg) (http://fastpic.ru/view/48/2012/1129/cb6cac5a216f1f5f227300a85a832c9d.png.html)


Название: Re: qmake native slash
Отправлено: Bepec от Ноябрь 29, 2012, 17:27
Уважаемый, а вы не думаете, что у вас работает на той машине терминал Far'a?

По-моему там по англицки чётко написано, что запущен терминал Far'a. И ты пробуешь команды в ЕГО, а не нативном терминале.

PS скажи что я неправ :)


Название: Re: qmake native slash
Отправлено: Alex Custov от Ноябрь 29, 2012, 17:48
PS скажи что я неправ :)

Набери в этом терминале "help | more" и удивись. Ну да ладно, возьмём просто cmd:

(http://i26.fastpic.ru/thumb/2012/1129/c6/2e46b62d6e9ac53040c24a5ee54683c6.jpeg) (http://fastpic.ru/view/26/2012/1129/2e46b62d6e9ac53040c24a5ee54683c6.png.html)