Переносимость файлов проекта qmake между ОС |
Здравствуйте, гость ( Вход | Регистрация )
Переносимость файлов проекта qmake между ОС |
Алексей1153 |
5.2.2011, 18:27
Сообщение
#1
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Уже несколько раз столкнулся с тем, что некоторые настройки проекта работают в винде, но требуют допиливания в линуксе (и наоборот)
Первый вопрос такой: теневая сборка в QtCreator. Под виндой указывается абсолютный путь, а если это не так, то путь отсчитывается от папки установки Qt. А во как сделать так, чтобы универсально задавалась папка X, которая лежит на 1 шаг выше по дереву каталогов, чем файл *.pro? Второй вопрос: профиль. Под виндой , к примеру, 4.7.0 (а "Qt в PATH" не определён), под линуксом приходится вручную выбирать "Qt в PATH". Как обобщить ? Третий вопрос - кодировки. Вот в соседней теме озвучил, повторюсь, как вывернулся Цитата 1) все файлы проекта - в кодировке UTF-8
2) кодировка среды по умолчанию - UTF-8 3) строки оборачиваю в QString::fromUtf8("русский текст") - наткнулся на этот вариант, пытаясь сделать универсально для винды и для линукса. Больше вроде не было проблем Кстати, интересно, правильно ли я сделал, или оно "просто пока работает" ? Сообщение отредактировал Алексей1153 - 5.2.2011, 18:28 |
|
|
maint |
5.2.2011, 18:54
Сообщение
#2
|
Участник Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: 2 |
Уже несколько раз столкнулся с тем, что некоторые настройки проекта работают в винде, но требуют допиливания в линуксе (и наоборот) Первый вопрос такой: теневая сборка в QtCreator. Под виндой указывается абсолютный путь, а если это не так, то путь отсчитывается от папки установки Qt. А во как сделать так, чтобы универсально задавалась папка X, которая лежит на 1 шаг выше по дереву каталогов, чем файл *.pro? Второй вопрос: профиль. Под виндой , к примеру, 4.7.0 (а "Qt в PATH" не определён), под линуксом приходится вручную выбирать "Qt в PATH". Как обобщить ? Третий вопрос - кодировки. Вот в соседней теме озвучил, повторюсь, как вывернулся Цитата 1) все файлы проекта - в кодировке UTF-8 2) кодировка среды по умолчанию - UTF-8 3) строки оборачиваю в QString::fromUtf8("русский текст") - наткнулся на этот вариант, пытаясь сделать универсально для винды и для линукса. Больше вроде не было проблем Кстати, интересно, правильно ли я сделал, или оно "просто пока работает" ? на первый вопрос. В обоих системах можно указать одинаково
например у меня
вопрос второй. Формализовать не получилось у меня. PATH - это от операционной системы. На новом месте укзывать для сборки обязятельно вопрс третий. Сделано абсолютно правильно. Только я, еще (непомню откуда взял правило, то ли сам допер, то ли вычитал) укаываю в main.cpp
в проекте соотвественно
|
|
|
Алексей1153 |
5.2.2011, 18:58
Сообщение
#3
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
на первый вопрос. В обоих системах можно указать одинаково ../имя_файла.cpp э... Вообще-то , вопрос не об этом. А о выходных файлах. Если там указать оператор шага наверх, то скомпилится просто напросто не в папке Qt, а на шаг выше (c:/2010.05/ у меня) указываю в main.cpp а вот надо ли ? Вопрос остался открытым #ifdef _LINUX #ifdef _WIN32 во, за дефайны спасибо, что напомнил, я и забыл про них совсем )) Пригодится. |
|
|
Litkevich Yuriy |
5.2.2011, 18:59
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Алексей1153 |
5.2.2011, 19:01
Сообщение
#5
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
|
|
|
maint |
5.2.2011, 19:19
Сообщение
#6
|
Участник Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: 2 |
на первый вопрос. В обоих системах можно указать одинаково ../имя_файла.cpp э... Вообще-то , вопрос не об этом. А о выходных файлах. Если там указать оператор шага наверх, то скомпилится просто напросто не в папке Qt, а на шаг выше (c:/2010.05/ у меня) указываю в main.cpp а вот надо ли ? Вопрос остался открытым #ifdef _LINUX #ifdef _WIN32 во, за дефайны спасибо, что напомнил, я и забыл про них совсем )) Пригодится. вообще файлики имя.pro.user тащить с собой не только между разными идеологически системами, но в просто на другую машину вредно для здоровья.В main.cрp указывать надо. Локаль определять может и не стоит (если не с базами работа). Но для вывода текста я бы все же рекомендовал. Не пожалеешь при перетаскивании проекта. Была у меня плюха с этим. Вдруг при переносе из линуха в винду, кажется или наоборот, вдруг дурь началась в моей диагностике. Я убил 2 дня, пока дошло. И просрочил срок сдачи |
|
|
Алексей1153 |
5.2.2011, 19:27
Сообщение
#7
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
вообще файлики имя.pro.user тащить с собой не только между разными идеологически системами, но в просто на другую машину вредно для здоровья там вроде ничего опасного не хранится. Специально заглянул сейчас а XML - он как бы и в Африке не doc )) Сообщение отредактировал Алексей1153 - 5.2.2011, 19:28 |
|
|
maint |
5.2.2011, 19:32
Сообщение
#8
|
Участник Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: 2 |
вообще файлики имя.pro.user тащить с собой не только между разными идеологически системами, но в просто на другую машину вредно для здоровья там вроде ничего опасного не хранится. Специально заглянул сейчас а XML - он как бы и в Африке не doc )) например недавно здесь пробегала тема, почему дебагер не заводится. |
|
|
igor_bogomolov |
5.2.2011, 20:49
Сообщение
#9
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
maint, Не надо цитировать целыми сообщениями, получается очень громоздко и тяжело читать.
В первый вопроса так и не въехал. Напиши проще что делаешь, что в результате получаешь и что хотелось бы получить. Я теневую сборку в своих проектах не использую. Предпочитаю сам указывать куда должны помещаться библиотеки, бинарники, файлы сборки и т.д. ОС можно определить проще. Смотри определения Q_OS_* (Q_OS_LINUX, Q_OS_UNIX, Q_OS_WIN32, etc). |
|
|
Алексей1153 |
5.2.2011, 20:55
Сообщение
#10
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
В первый вопроса так и не въехал да вроде разобрались уже - вручную и придётся указывать ОС можно определить проще. Смотри определения Q_OS_* (Q_OS_LINUX, Q_OS_UNIX, Q_OS_WIN32, etc). эти определения в pro/pri тоже видны ? |
|
|
Текстовая версия | Сейчас: 29.11.2024, 5:36 |