Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: navrocky от Декабрь 03, 2009, 15:17



Название: CMake + Qt 4.5 + Windows + Debug = :(
Отправлено: navrocky от Декабрь 03, 2009, 15:17
Не работает вышеперечисленная связка. Скачал qt-sdk, создал простой проект:

main.cpp
Код:
#include <QWidget>
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget w;
    w.show();
    a.exec();
    return 0;
}

CMakeLists.txt
Код:
project(test)

cmake_minimum_required(VERSION 2.6)

find_package(Qt4 REQUIRED)
include(${QT_USE_FILE})

set(TARGET test)

add_executable(${TARGET} WIN32
main.cpp
)

target_link_libraries(${TARGET} ${QT_LIBRARIES})

Компилю релиз - все работает отлично.
Компилю под отладку: cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Debug .

Результат вылетает с ошибкой: Ошибка инициализации приложения 0x000005. ....

В чем могут быть грабли?  ???

Когда делаю qmake проект на этих исходниках, то работает и отладка и релиз.

Версии ПО:
windows xp sp2
cmake-2.6-patch 4
qt-sdk-4.5.2-2009.03
  gcc-3.4.5
msys-1.0.11


PS:
когда смотрю с чем слинковано приложение, то cmake-вариант слинкован с QtGuid4.dll, kernel32.dll, msvcrt.dll.
qmake-вариант: QtCored4.dll, mingwm10.dll, QtGuid4.dll, kernel32.dll, msvcrtXX.dll.

Я в начале думал на это, что недолинкованы либы...

Но!, релизовый cmake-вариант тоже слинкован только с QtGui4.dll, kernel32.dll, msvcrt.dll и работает...


Название: Re: CMake + Qt 4.5 + Windows + Debug = :(
Отправлено: Dendy от Декабрь 09, 2009, 03:42
Попробуйте -G "MinGW Makefiles". И убедитесь, что список Qt-библиотек верный, например так: message( "QT_LIBRARIES = ${QT_LIBRARIES}" ). Для релиза должны быть релизные библиотеки, для дебага - дебажные. И ещё, если вы указали в add_executable() тег WIN32 - то приложение должно быть дополнительно слинковано с qtmain[d].lib, поскольку там находится точка входа WinMain():

Код:
target_link_libraries(${TARGET} ${QT_LIBRARIES} ${QT_QTMAIN_LIBRARY})


Название: Re: CMake + Qt 4.5 + Windows + Debug = :(
Отправлено: xokc от Декабрь 12, 2009, 20:42
A MS Debuging tools установлен?