5 ответов:
компилятор Метаобъектов, moc, является программа, которая обрабатывает Qt C++ увеличение.
инструмент moc считывает файл заголовка C++. Если он находит один или несколько классов объявления, содержащие Q_OBJECT макрос, он создает исходный файл c++ содержащий мета-объектный код этот класс. Среди прочего, мета-объектный код необходим для механизм сигналов и слотов, время выполнения введите информацию, и динамическая система свойств.
Он просто говорит предкомпилятору, что этот класс имеет элементы gui и должен быть запущен через " moc " вам нужно только добавить это в классы, которые используют механизм сигнала/слота.
Но он будет спокойно проигнорирован в любых других классах-он просто добавляет время сборки.
MOC (meta object compiler) преобразует файлы заголовков, включенные в макрос Q_OBJECT, в эквивалентный исходный код C++. Он в основном управляет механизмом сигнального слота и делает его понятным для компилятора C++
макрос Q_OBJECT должен появиться в закрытом разделе определения класса, который объявляет свои собственные сигналы и слоты или использует другие сервисы, предоставляемые метаобъектной системой Qt.
1 из документации Qt Метаобъектная Система
инструмент moc считывает исходный файл C++. Если он находит одно или несколько объявлений классов, содержащих макрос Q_OBJECT, он создает другой исходный файл C++, который содержит мета-объектный код для каждого из этих классов. Этот сгенерированный исходный файл либо #include'D в исходный файл класса, либо, как правило, скомпилирован и связан с реализацией класса.
2 От Qt документация Q_OBJECT
макрос Q_OBJECT должен появиться в закрытом разделе определения класса, который объявляет свои собственные сигналы и слоты или использует другие сервисы, предоставляемые метаобъектной системой Qt.
3 из документации Qt moc
инструмент moc считывает файл заголовка C++. Если он находит одно или несколько объявлений классов, содержащих макрос Q_OBJECT, он создает источник C++ файл, содержащий мета-объектный код для этих классов. Помимо прочего, метаобъектный код необходим для механизма сигналов и слотов, информации о типе времени выполнения и системы динамических свойств.
4 из документации Qt сигналы и слоты
макрос Q_OBJECT расширяется препроцессором для объявления нескольких функций-членов, реализуемых moc; если вы получаете ошибки компилятора по строкам " undefined ссылка на vtable для LcdNumber", вы, вероятно, забыли запустить moc или включить вывод moc в команду link.
Comments