crossplatform.ru

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

4 страниц V   1 2 3 > »   
Ответить в данную темуНачать новую тему
> Сборка Qt, Самостоятельная (пере)сборка Qt под определённые нужды.
Phoenix_nsk
  опции профиля:
сообщение 17.3.2011, 16:23
Сообщение #1


Студент
*

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

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




Репутация:   0  


Кто-нить пересобирал Qt?
Кто-нить пересобирал Qt без зависимостей от компилятора (Visual Studio)
Кто-нить замечал после этого какие-нить глюки?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 17.3.2011, 16:33
Сообщение #2


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


Типа "как пересобрать в статику"?
Какие еще зависимости Visual Studio !?
Нет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Phoenix_nsk
  опции профиля:
сообщение 17.3.2011, 19:34
Сообщение #3


Студент
*

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

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




Репутация:   0  


Нет, статика не интересует.
Зависимости от компилятора, это а-ля файлы msvc90.dll? а так же невозможность компилировать с флагом MT, только MD, что собственно и влечёт за собой эти зависимости.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ufna
  опции профиля:
сообщение 17.3.2011, 19:59
Сообщение #4


Активный участник
***

Группа: Участник
Сообщений: 362
Регистрация: 24.5.2008
Из: Курган/СПб
Пользователь №: 182

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




Репутация:   5  


да
да
нет
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Phoenix_nsk
  опции профиля:
сообщение 17.3.2011, 20:20
Сообщение #5


Студент
*

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

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




Репутация:   0  


Какая студия, какая система?
Попробуйте простой пример, создайте приложение с использованием QTreeWidget и заполните его, пусть например так:
int main(int argc, char *argv[])
{
QApplication p(argc, argv);
QTreeWidget twg;
QStringList lst;

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("CP1251"));

lst << "Folders" << "Used space";
twg.setHeaderLabels(lst);
twg.setSortingEnabled(true);

QTreeWidgetItem *pItem = new QTreeWidgetItem (&twg);
pItem->setText(0, "Диски");

QTreeWidgetItem *a = new QTreeWidgetItem (pItem);
a->setText(0, "Арбуз");
a = new QTreeWidgetItem (pItem);
a->setText(0, "Ананас");
a = new QTreeWidgetItem (pItem);
a->setText(0, "Вода");
a = new QTreeWidgetItem (pItem);
a->setText(0, "Водка");
a = new QTreeWidgetItem (pItem);
a->setText(0, "Сода");
a = new QTreeWidgetItem (pItem);
a->setText(0, "Елка");
a = new QTreeWidgetItem (pItem);
a->setText(0, "F");
a = new QTreeWidgetItem (pItem);
a->setText(0, "Line");
a = new QTreeWidgetItem (pItem);
a->setText(0, "Label");

twg.sortItems(0, Qt::AscendingOrder);
twg.setItemExpanded(pItem, true);
twg.resize(220, 350);
twg.show();

return p.exec();
}


Запустите и попробуйте осуществить навигацию по дереву с использованием текстовых клавиш.
Например нажимая 'В' должен осуществиться переход на элемент "Вода".
Что произойдёт на самом деле? Как поведёт себя программа?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ufna
  опции профиля:
сообщение 17.3.2011, 20:36
Сообщение #6


Активный участник
***

Группа: Участник
Сообщений: 362
Регистрация: 24.5.2008
Из: Курган/СПб
Пользователь №: 182

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




Репутация:   5  


честно говоря, мне лень счас качать Qt, распаковывать, собирать, и далее по списку :) Думаете, у меня они вечно живут? Сделал, простетил, проект в релиз отправил, отправил на свалку. Собирал сие под мобилку, багов не было замечено никаких. Студия 05 и 08 проверялись.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 17.3.2011, 20:38
Сообщение #7


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


УМВР
Linux Ubuntu 10.10 x86
Qt из реп (4.7.0), креатор с оффсайта (2.1.0).
gcc version 4.4.5

Сообщение отредактировал RazrFalcon - 17.3.2011, 20:39
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Phoenix_nsk
  опции профиля:
сообщение 17.3.2011, 20:50
Сообщение #8


Студент
*

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

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




Репутация:   0  


А вот у меня на 7 винде идёт повреждение кучи, на XP теже dll Qt'шные всё нормуль. Собирал 4.7.1 и 4.7.2 вижак 2008, печальная ситуация в этом плане.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 17.3.2011, 20:58
Сообщение #9


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


Цитата(Phoenix_nsk @ 17.3.2011, 19:50) *
идёт повреждение кучи

?!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Phoenix_nsk
  опции профиля:
сообщение 17.3.2011, 21:04
Сообщение #10


Студент
*

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

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




Репутация:   0  


Нажимаю кнопку, должен перейти на элемент, да?
НО!
В релизе всё падает сразу.
В дебаге же происходит следующее:
Интересно то, что это происходит при одном и том же действии - нажатии клавиши, но в Qt файлах я оказываюсь порой в разных, но итог один и тот же:
ВСЁ ПРИХОДИТ ВОТ СЮДА _ASSERTE(_CrtIsValidHeapPointer(pUserData)); в dbgheap.c

/*
* If this ASSERT fails, a bad pointer has been passed in. It may be
* totally bogus, or it may have been allocated from another heap.
* The pointer MUST come from the 'local' heap.
*/
_ASSERTE(_CrtIsValidHeapPointer(pUserData));


вызов keyboardSearch("str"); тоже приводит к таким последствиям.
Становимся на _ASSERTE(_CrtIsValidHeapPointer(pUserData));

"ОС Windows имициировала точку останова в 123.exe.
Это может быть вызвано повреждением кучи и указывает на ошибку в conf_dev.exe или в одной из загруженных им DLL.
Возможной причиной так же может быть нажатие пользователем клавиши F12, когда фокус принадлежит 123.exe"
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

4 страниц V   1 2 3 > » 
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


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




RSS Текстовая версия Сейчас: 28.11.2022, 21:36