Russian Qt Forum
Ноябрь 24, 2024, 18:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не работает release (память не может быть read)  (Прочитано 4200 раз)
agentgoblin
Гость
« : Май 25, 2010, 05:02 »

Qt 4.6.2 и MinGW 5.1.6 под WinXP

Компилирую (статически) hello world. Исходник:
Код:
#include <QApplication>
#include <QLabel>

int main(int argc, char** argv)
{
    QApplication app(argc, argv);
    QLabel hello("Hello, World!");
    hello.show();
    return app.exec();
}
Проблема заключается в следующем: когда собирается debug - он работает. Когда собирается release - он вылетает с сообщением:
Цитировать
Инструкция по адресу "0x008ee0ae" обратилась к памяти по адресу "0xffffffff". Память не может быть "read"
В чём может быть причина? Где копать?

P.S. Кстати, опытным путём установлено, что debug после strip уменьшается в размерах почти до release и продолжает запускаться. Проблема с оптимизацией release?
« Последнее редактирование: Май 25, 2010, 05:13 от agentgoblin » Записан
KuZ
Гость
« Ответ #1 : Май 25, 2010, 20:48 »

Возможно из-за того что кьют собран статически только для дебага.
Записан
agentgoblin
Гость
« Ответ #2 : Май 26, 2010, 19:27 »

Собирал с ключом -debug-and-release. Я так понимаю, что это именно верно для обоих случаев: и debug и release. Кроме того, release собирается в .exe на 12 Мбайт. Debug, при отрезаниии strip'ом отладочной информации, имеет почти тот же размер, но при этом работает.

Собирал по инструкции, кажется, с wiki.crossplatform. Вот так:
Код:
make confclean

configure -debug-and-release -opensource -static -system-sqlite -no-opengl -no-openvg -platform win32-g++ -graphicssystem raster -qt-zlib -no-libmng -no-libtiff -no-dsp -no-vcproj -qmake -process -mmx -sse -sse2 -arch windows -qt-style-windows -qt-style-windowsxp -qt-style-cleanlooks -qt-style-motif -qt-style-cde

make sub-src

Вообще я, конечно, могу собирать из программ debug, затем резать strip'ом и не волноваться - размер почти тот же и при этом работает. Но хотелось бы разобраться.
« Последнее редактирование: Май 26, 2010, 19:30 от agentgoblin » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 21.