![]() |
|
![]() ![]() ![]() |
|
becks |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 165 Регистрация: 6.7.2010 Репутация: нет Всего: нет |
Добрый день, коллеги. Такой вопрос, хочу чтобы релизовый бинарник падал в необходимый мне каталог, а не в каталог по умолчанию, а остальные файлы - в дефолтовый. Для этого добавляю в файл проекта следующее:
Размещение происходит идеально, все кидает куда нужно. Но только я захотел запустить проект на выполнение в Qt Creator, сразу получил:
Оно вроде и понятно, среда пытается запустить программу по дефолтовому пути. Самое занятное, что среда не дает изменить путь в exe в Проекты-Настройки запуска-программа. Для поля закрыто редактирование. Подскажите, пожалуйста, как и что поменять, чтобы можно было запустить экзешник из среды, не из дефолтового каталога? Спасибо |
||||
|
|||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
я использую не отностельные пути, а использую макрос $$PWD для каталога проекта - все работает правильно.
отладочную версию складываю в тот же каталог, но добавляю d к имени файла. Так проще находить файлы конфигурации, бази данных, плагины и т.д. |
|||
|
||||
becks |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 165 Регистрация: 6.7.2010 Репутация: нет Всего: нет |
Я все равно не очень понял, допустим у меня такая структура:
Projects | |_Project_1 | | | |_*cpp , *h | | | |_release | | | | | |_ .moc, .obj | | | |_debug | | | |_ .moc, .obj | | |_Project_2 | | | |_*cpp , *h | | | |_release | | | | | |_ .moc, .obj | | | |_debug | | | |_ .moc, .obj | | |_Global_Project | |_Project_1 | | | |_ Project_1.exe | |_Project_2 | | | |_ Project_2.exe | |_*cpp , *h | |_release | | | |_ .moc, .obj, Global_Project.exe | |_debug | |_ .moc, .obj, Global_Project.exe И я добиваюсь такого размещения благодаря pro файлу указанному выше, но вот программа никак не хочет запускаться из среды. Как в данном случае будет выглядеть .pro относительно моего вопроса, пусть и с макросами $$PWD для проекта Project_1? И еще подскажите в настройках запуска проекта есть поле "Рабочий каталог", я наивно полагал, что $$PWD берет значение оттуда. $$PWD - это каталог в котором находится pro файл данного проекта, всегда? Это сообщение отредактировал(а) becks - 13.7.2012, 09:38 |
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
Вот как в моём файле проекта:
$$PWD - каталог с файлом проекта $$OUT_PWD - каталог, куда QtCreator создаёт makefile. При обычном запуске qmake то же самое, что и $$PWD Добавлено через 4 минуты и 35 секунд кстати, у тебя Debug, Release. Нужно debug, release |
|||
|
||||
spyswamp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 349 Регистрация: 18.8.2006 Репутация: 1 Всего: 7 |
Оффтоп: Кстати, у $$PWD обнаружил дурную особенность. Он даже под Windows возвращает в пути "/" вместо "\". С этим могут быть проблемы.
-------------------- - why you call it beta? - cuz it's betta then nothin' |
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
Ну давал бы $$PWD путь с '\\' - предлагаешь мой проект переписать так:
чтобы везде были правильные слеши. Аналогично в INCLUDEPATH и т.д. В большинстве случаев в windows это без разницы, а проект усложняется. Это сообщение отредактировал(а) math64 - 13.7.2012, 21:58 |
|||
|
||||
spyswamp |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 349 Регистрация: 18.8.2006 Репутация: 1 Всего: 7 |
Это я к тому, что win32:DESTDIR = $$PWD\\..\\bin развернется в blabla/ololo/kukuku\\..\\bin. Команды copy и xcopy виндовые не схавают, например, твои "/". Хотя, я это просто обошел: написал мелкий cmd-файл, чтобы он слеши менял, а в *.pri спокойно использовал $$PWD.
Добавлено через 1 минуту и 23 секунды Тогда сама команда оборачивается так:
-------------------- - why you call it beta? - cuz it's betta then nothin' |
||||
|
|||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
А я к тому, что твоё blabla/ololo/kukuku\\..\\bin линукс не схавает. Поэтому нужно писать $$PWD/../bin, а тогда в твоём c:\\blabla\\ololo\\kukuku/../bin толку тоже не будет - нужно оставшиеся / превращать в \\.
А для этого у qmake есть $$replace(string, /, \\) - её всё равно применять при любом поведении $$PWD |
|||
|
||||
spyswamp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 349 Регистрация: 18.8.2006 Репутация: 1 Всего: 7 |
math64, о, про $$replace() не знал.
![]() ![]() -------------------- - why you call it beta? - cuz it's betta then nothin' |
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
Про $$quote() ведь знал! А $$replace() следующая за ней в хелпе.
|
|||
|
||||
spyswamp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 349 Регистрация: 18.8.2006 Репутация: 1 Всего: 7 |
math64, ты меня затроллил!
![]() ![]() -------------------- - why you call it beta? - cuz it's betta then nothin' |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |