| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Ошибка при выполнении MOC. |
| Автор: Fighter 29.1.2011, 00:36 | ||
| Исходная задача: Есть QT 4.6.2. Среда разработки - Visual Studio. С сайта скачал и SDK и Visual Studio Add-in. Далее, из книжки Макса Шлее написал примерчик:
При компиляции выдает ошибку: Error 1 error PRJ0019: A tool returned an error code from "Moc'ing main.moc..." qtApp qtApp Не знаю что делать. может быть автоматической установки мало для полной настройки VS??? |
| Автор: Modul 29.1.2011, 13:48 | ||||||
| Пример работы с сигналом и слотом. My.h
My.cpp
main.cpp
|
| Автор: alexvs11 29.1.2011, 17:32 |
| Fighter, все классы работающие с сигналами/слотами должны быть описаны в отдельном .h файле/определены в отдельном .cpp |
| Автор: Fighter 29.1.2011, 19:59 | ||
1. У меня все заработало после переустановки QT. Я скачал самую новую на данный момент QT 4.7.1 и все соответствующие ей компоненты. В результате у меня все замечательно работает и в QT Creator, VS2008 и в VS2010. 2. Разбиение на *.h и *.cpp файлы - это не обязательное условие языка С++ вообще, и библиотеки QT применительно к слотам и сигналам в частности. Разбиение на файлы сделано исключительно для удобства программиста. Всю программу можно написать и в одном файле. Все равно, когда запускается процесс сборки сначала препроцессор создает конечные файлы для компиляции, например, выполняя команды #include - именно включая содержимое хедеров в cpp. Кроме этого, в QT в частности метаобъектный компилятор обрабатывает макросы Q_OBJECT и многие другие. В конечном итоге сам компилятор компилирует как будто ты писал все в одном большом файле. Да и действительно, любую программу можно написать в одном CPP файле, просто разбираться в ней будет сложно. В общем, проблема решена, спасибо всем))) |
| Автор: alexvs11 29.1.2011, 20:07 |
| Fighter, спасибо, все знают, что для с++ это не обязательно, но moc-компилятор может не справиться |
| Автор: Fighter 30.1.2011, 12:14 | ||
Справится, он умный))))) У меня во всяком случае справляется) |