2010-08-04 3 views
1

Я скомпилировал Qt 4.6.2 из источников с VS 2008. Теперь я хотел бы иметь возможность входить в источники Qt во время отладки моего приложения. Как заставить VS забрать исходные файлы?Visual Studio для загрузки исходного кода Qt для отладки

Я забыл упомянуть, что qt был создан статически, и я нигде не нашел файлы .pdb. Я считаю, что все необходимые данные должны быть включены в файлы debug .lib?

+0

Он должен делать это автоматически, если у вас все еще есть источник в том же месте, где вы его скомпилировали. – leppie

+0

Даже если вы скомпилировали .lib в static, вам нужно pdb для отладки библиотеки. – tibur

ответ

1

Вы скомпилировать отладочную версию Qt? Для этого вам нужно указать аргументы -debug или -debug-and-release для шага настройки. Я считаю, что даже для статической версии вы получите файлы pdb.

+0

У меня есть выпуск и debug libs, но нет .pdb-файлов. Я думаю, что Qt был настроен на -debug-and-release, так как это опция по умолчанию. –

+0

Вы скомпилировали его с помощью nmake? – tibur

+0

ну, я действительно использовал клон nmake под названием jom, чтобы использовать все четыре ядра моей машины: http://labs.trolltech.com/blogs/2009/03/27/speeding-up-visual-c-qt-builds/ –

0

Убедитесь, что файл .pdb для вашей сборки Qt находится в вашем каталоге bin, рядом с .dll, и вы должны быть в состоянии войти в исходный код.

+0

Qt построен статически, нет файлов .pdb, так как нет сборок. –

+0

А, ну это проблема :) –

+0

@ak. Обратите внимание, что файлы .pdb должны быть сгенерированы под -debug или -debug-and-release, но вы должны иметь в виду, что очистка Qt-файла по вызову 'nmake clean' удаляет все .pdb-файлы среди других. –

1

Из Вашего вопроса,

Я верю, что все необходимые данные должны быть включены в отладить .lib файлы?

Не нужно вообще. Там не должен быть любым dlls или libs , связанным с Qt, так как у вас есть исходные файлы.

Скажите, например, что вы хотите пройти через QWidget.

Таким образом, в файле cpp вы будете использовать, как,

QWidget *trialWidget = new QWidget(); 

Теперь то, что вы должны сделать, вы должны включать в себя header file для QWidget (qwidget.hЯ думаю) и файл cpp для QWidget (qwidget.cpp в этом случае).

Запомните, что все другие классы, которые могут быть нуждающиеся в qwidget.hтакже должны быть включены. Скажем, например, qobject.h за QObject.

Таким образом, вы замены DLLs и библиотеки с исходным кодом сам, так что вы можете шагнуть в в Qt код доступен в соответствующих cpp файлах.

Надеется, что это помогает ..

+0

.Файл проекта vcproj генерируется командой 'qmake -tp vc', и он не ссылается ни на какие источники инфраструктуры, будет очень больно ссылаться на все источники, которые мне нужны каждый раз, когда проект будет регенерирован ... Я думаю, что должно быть простое решение. –

Смежные вопросы