crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Static & Shared в одной папке
daorus
  опции профиля:
сообщение 5.12.2010, 11:20
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 30.10.2010
Пользователь №: 2163

Спасибо сказали: 0 раз(а)




Репутация:   0  


Сейчас у меня установлено две копии qt - динамическая и статическая, каждая по ~1,8 Гб. Во время сборки переключаю их через QTDIR Но при этом в папке со статиком свободно лежат все динамические компоненты и никто никому не мешает. Возникает вопрос. А может кто знает, есть ли способ юзать только одну папку в которой живут и динамические и статические компоненты, а уборкой управлять всего лишь на уровне *.pro файла, например так
CONFIG += static - берет статические компоненты
CONFIG += shared - берет динамические компоненты
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 5.12.2010, 11:30
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(daorus @ 5.12.2010, 13:20) *
Но при этом в папке со статиком свободно лежат все динамические компоненты и никто никому не мешает.
к ним интерфейсных файлов нет (*.a)
При сборке Qt динамически лежат:
*.dll и соответсвующие им *.a (интерфейсные)
а для статической - только *.a (полные)

сравни размеры этих *.a файлов.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
daorus
  опции профиля:
сообщение 5.12.2010, 18:54
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 30.10.2010
Пользователь №: 2163

Спасибо сказали: 0 раз(а)




Репутация:   0  


А ещё у динамических есть 4-ка в имени, а у статических 4-ки нет. Проблема в том, что qmake не реагирует на CONFIG+=static. А на что именно он реагирует, я никак понять не могу. Я думал, что может эти настройки прошиты в сам qmake.exe, но перенос из qt в qtstatic файла qmake.exe - он всё равно генерит статический проект. Я пробовал переносить по одной папке: src, mkspecs, lib, из bin всё выкинул, оставив только qmake - ничего не помогло. Остается только один вариант - на сборку влияют *.pri файлы в lib-папке, но что-то я не могу найти там слова static. В общем, пока живу как обычно, с двумя фреймворками по 1,8 гига каждый.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DmP
  опции профиля:
сообщение 6.12.2010, 2:45
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 61
Регистрация: 11.3.2008
Пользователь №: 116

Спасибо сказали: 15 раз(а)




Репутация:   2  


Цитата(daorus @ 5.12.2010, 18:54) *
... Проблема в том, что qmake не реагирует на CONFIG+=static. ... В общем, пока живу как обычно, с двумя фреймворками по 1,8 гига каждый.

В былые времена собирал и то и другое в одной папке.
Скажем, собирается сначала shared сборка, потом нужно переименовать qtmain[d].lib (хотя может и не нужно), потом собирается static - в минимальном наборе - только сами библиотеки.
Друг другу они не мешают, если не задается CONFIG +=static, можно попробовать добавить строку CONFIG -= shared.
Ну и конечно нет смысла держать 1,8 гига, nmake clean ни кто не отменял.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 6.12.2010, 20:37
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


qmake ориентируется по фалам из каталога %QTDIR%/mkspecs
В частности qconfig.pri, и компиллер-зависимым.

П.С.
В qmake может быть и зашит тип сборки, как, например, пути к корню Qt
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DmP
  опции профиля:
сообщение 6.12.2010, 20:54
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 61
Регистрация: 11.3.2008
Пользователь №: 116

Спасибо сказали: 15 раз(а)




Репутация:   2  


Цитата(Litkevich Yuriy @ 6.12.2010, 20:37) *
qmake ориентируется по фалам из каталога %QTDIR%/mkspecs
В частности qconfig.pri, и компиллер-зависимым.

П.С.
В qmake может быть и зашит тип сборки, как, например, пути к корню Qt

Все настройки находятся в configure.cache и .qmake.cache. Ни чего в qmake не вшивается.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 6.12.2010, 21:02
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(DmP @ 6.12.2010, 22:54) *
Все настройки находятся в configure.cache и .qmake.cache.
это не настройки, это всего лишь кэш, удали их и ничего не потеряется. Кэшь нужен для тех кто часто пересобирает Qt, чтобы аргументы командной строки всякий раз руками не набирать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DmP
  опции профиля:
сообщение 6.12.2010, 22:27
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 61
Регистрация: 11.3.2008
Пользователь №: 116

Спасибо сказали: 15 раз(а)




Репутация:   2  


Цитата(Litkevich Yuriy @ 6.12.2010, 21:02) *
Цитата(DmP @ 6.12.2010, 22:54) *
Все настройки находятся в configure.cache и .qmake.cache.
это не настройки, это всего лишь кэш, удали их и ничего не потеряется. Кэшь нужен для тех кто часто пересобирает Qt, чтобы аргументы командной строки всякий раз руками не набирать

Вообще то немного теряется, но в общем да, похоже настройки лежат в mkspecs/qconfig.pri и mkspecs/default/qmake.conf, но не в самом qmake.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 25.4.2024, 22:02