LINUX.ORG.RU

qmake и moc против glib

 , , , ,


0

2

пытаюсь прикрутить gmime к проекту на кутях. компиляю, компиляю - и вдруг выясняется, что в gio/gdbusintrospection.h есть структура с полем signals, на которое qmake ругается как на ключевое слово не на месте, ну или типа того:

usr/include/glib-2.0/gio/gdbusintrospection.h:155:25: error: expected unqualified-id before 'public'
   GDBusSignalInfo     **signals;
                         ^

кто виноват ^W^W и что делать?

★★★★★

Видимо исходник, в котором инклудится этот заголовочник, moc-ается.

Убери его из-под moc, очевидно же. Вынеси свою обертку над gmime в отдельный исходник и компиляй его без moc.

yoghurt ★★★★★
()
Ответ на: комментарий от yoghurt

Убери его из-под moc, очевидно же

согласен, очевидно. но как?

Вынеси свою обертку над gmime

очень уж много обертывать надо, геморрой, казалось бы, на пустом месте.

нельзя как-то запретить препроцессинг отдельных инклюдов?

MyTrooName ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Если в твоём Qt-коде используются макросы а не ключевые слова (например Q_EMIT вместо emit, или QT_SIGNALS вместо signals), то плюсую анона

CONFIG += no_keywords

Stil ★★★★★
()
Ответ на: комментарий от yoghurt

вряд ли cmake сработает, moc вроде как заходит в инклуды рекурсивно.

попробовал то, что по ссылке советуют, походу - врут.

MyTrooName ★★★★★
() автор топика
Ответ на: комментарий от Stil

да, пожалуй оптимальный вариант. благо, у меня все модели сейчас или в реадонли, или унаследованы от AbstractItemModel, так что в моем коде эти ключевые слова не используются вообще :) а интерфейс на qml-е

MyTrooName ★★★★★
() автор топика
Последнее исправление: MyTrooName (всего исправлений: 1)
Ответ на: комментарий от annulen

заголовки gmime и glib и так в HEADERS не добавлены. проблема в том, что они инклудятся из тех, которые добавлены в HEADERS и/или SOURCES

PS этот ваш glib ТАКАЯ лапша...

MyTrooName ★★★★★
() автор топика
Последнее исправление: MyTrooName (всего исправлений: 1)
Ответ на: комментарий от annulen

или вообще убери их в cpp

как ни странно, не помогло.

Q_MOC_RUN тоже

MyTrooName ★★★★★
() автор топика
Последнее исправление: MyTrooName (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

??

Опечатка, хотел написать «читаешь», или что то другое хотел написать, что я не распарсил?

eternal_sorrow ★★★★★
()
Ответ на: комментарий от MyTrooName

moc вроде как заходит в инклуды рекурсивно.

нет, запускается явно для каждого файла

Harald ★★★★★
()

Qt вроде как в своих недрах тоже glib использует, посмотри как там инклюдятся заголовочные файлы

Harald ★★★★★
()
Ответ на: комментарий от eternal_sorrow

сволочь, которая придумала moc должна гореть в аду.

сволочь, которая придумала макросы должна гореть в аду.

Dendy ★★★★★
()
Ответ на: комментарий от Harald

Qt вроде как в своих недрах тоже glib использует

маама родная! О_О

MyTrooName ★★★★★
() автор топика
Ответ на: комментарий от Dendy

Попробовать переставить заголовочники glib перед заголовочниками Qt.

и так :(

MyTrooName ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.