crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Переносимость файлов проекта 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  


Цитата(Алексей1153 @ 5.2.2011, 23:27) *
Уже несколько раз столкнулся с тем, что некоторые настройки проекта работают в винде, но требуют допиливания в линуксе (и наоборот)

Первый вопрос такой: теневая сборка в QtCreator. Под виндой указывается абсолютный путь, а если это не так, то путь отсчитывается от папки установки Qt.

А во как сделать так, чтобы универсально задавалась папка X, которая лежит на 1 шаг выше по дереву каталогов, чем файл *.pro?


Второй вопрос: профиль. Под виндой , к примеру, 4.7.0 (а "Qt в PATH" не определён), под линуксом приходится вручную выбирать "Qt в PATH". Как обобщить ?

Третий вопрос - кодировки. Вот в соседней теме озвучил, повторюсь, как вывернулся
Цитата
1) все файлы проекта - в кодировке UTF-8
2) кодировка среды по умолчанию - UTF-8
3) строки оборачиваю в QString::fromUtf8("русский текст")

- наткнулся на этот вариант, пытаясь сделать универсально для винды и для линукса. Больше вроде не было проблем

Кстати, интересно, правильно ли я сделал, или оно "просто пока работает" ?


на первый вопрос. В обоих системах можно указать одинаково
../имя_файла.cpp

например у меня
SOURCES = main.cpp \
    ../common/init.cpp \
    logfile.c

вопрос второй. Формализовать не получилось у меня. PATH - это от операционной системы. На новом месте укзывать для сборки обязятельно
вопрс третий. Сделано абсолютно правильно. Только я, еще (непомню откуда взял правило, то ли сам допер, то ли вычитал) укаываю в main.cpp
#ifdef _LINUX
    setlocale(LC_ALL, "ru_RU.UTF-8");
#endif
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF8"));
#ifdef _WIN32
    setlocale(LC_ALL, "Russian");
#endif

в проекте соотвественно
win32 { 
    DEFINES += _WIN32
}
unix {
    DEFINES += _LINUX
}


Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Алексей1153   Переносимость файлов проекта qmake между ОС   5.2.2011, 18:27
- - maint   Цитата(Алексей1153 @ 5.2.2011, 23:27) Уже...   5.2.2011, 18:54
- - Алексей1153   Цитата(maint @ 5.2.2011, 20:54) на первый...   5.2.2011, 18:58
|- - maint   Цитата(Алексей1153 @ 5.2.2011, 23:58) Цит...   5.2.2011, 19:19
- - Litkevich Yuriy   Цитата(Алексей1153 @ 5.2.2011, 20:27) Пер...   5.2.2011, 18:59
- - Алексей1153   Цитата(Litkevich Yuriy @ 5.2.2011, 20:59)...   5.2.2011, 19:01
- - Алексей1153   Цитата(maint @ 5.2.2011, 21:19) вообще фа...   5.2.2011, 19:27
|- - maint   Цитата(Алексей1153 @ 6.2.2011, 0:27) Цита...   5.2.2011, 19:32
- - igor_bogomolov   maint, Не надо цитировать целыми сообщениями, полу...   5.2.2011, 20:49
- - Алексей1153   Цитата(igor_bogomolov @ 5.2.2011, 22:49) ...   5.2.2011, 20:55
- - igor_bogomolov   Цитата(Алексей1153 @ 5.2.2011, 20:55) эти...   5.2.2011, 21:04
|- - maint   Цитата(igor_bogomolov @ 6.2.2011, 2:04) П...   5.2.2011, 21:15
- - Алексей1153   а, я не сразу увидел - там вроде пространства имён...   5.2.2011, 21:08
- - maint   фу, сам запутался, затрепался. В файле проекта ука...   5.2.2011, 21:47
- - Алексей1153   maint, ок, попробую   5.2.2011, 22:03
- - Алексей1153   maint, сделал так MOC_DIR =$$PWD/../te...   5.2.2011, 22:55
- - igor_bogomolov   TMP_DIR = $$PWD/../temp CONFIG ...   5.2.2011, 23:30
- - Алексей1153   CONFIG (debug, debug|release) { а эта конструкция...   5.2.2011, 23:39
- - igor_bogomolov   По моему из примера вполне понятно, как она работа...   5.2.2011, 23:53
- - Алексей1153   да не совсем. Как выбирается условие ? Выход всегд...   6.2.2011, 0:03
- - Litkevich Yuriy   Цитата(Алексей1153 @ 5.2.2011, 21:01) А к...   6.2.2011, 7:50
- - Алексей1153   Litkevich Yuriy, ок заработало только в таком ви...   6.2.2011, 11:41
- - Litkevich Yuriy   Цитата(Алексей1153 @ 6.2.2011, 13:41) поч...   6.2.2011, 12:28
- - Алексей1153   факт остаётся фактом - только с моим вариантом зар...   6.2.2011, 13:12
- - igor_bogomolov   Алексей1153, почему бы просто не посмотреть докуме...   6.2.2011, 14:24
- - Алексей1153   мдяя, достаточно мутная дока. С ходу не смог осили...   6.2.2011, 14:33


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


9 чел. читают эту тему (гостей: 9, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.11.2024, 7:56