Ожидается, неквалифицированный-ID до '{' знак - PullRequest
0 голосов
/ 03 сентября 2011

Кажется, у меня странная проблема:

Я кодировал приложение на C ++ (используя Eclipse CDT), которое использует службы безопасности Netword Mozilla.Это приложение работает нормально, поэтому я подумал, что могу просто переместить соответствующие классы / заголовки / источники в другой проект (можно ли это вообще сделать?).В первоначальном проекте используются некоторые дополнительные заголовки, расположенные в /usr/include/nspr и libnss3.

. Этот другой проект скомпилирован с использованием CMake.Поэтому я сказал CMake добавить /usr/include/nspr к пути включения и использовать libnss3.Однако, когда я пытаюсь использовать классы в этом другом проекте, я получаю следующую ошибку при компиляции:

In file included from some-dir/src/import/FirefoxImporter.h:21:0,
                 from some-dir/src/import/Import_Firefox.h:26,
                 from some-dir/src/mainwindow.cpp:28:
/usr/include/nss/secmodt.h:85:25: error: expected unqualified-id before ‘;’ token

Строка 85 в secmodt.h выглядит следующим образом:

PK11SlotInfo **slots;   /* array of slot points attached to this mod*/

ИPK11SlotInfo is typedef'd в secmodt.h:

typedef struct PK11SlotInfoStr PK11SlotInfo; /* defined in secmodti.h */

Однако мне не удалось обнаружить secmodti.h в моей системе (однако исходная программа скомпилирована и выполнена просто отлично).

Кто-нибудь испытывал подобные проблемы и решал их?

1 Ответ

5 голосов
/ 03 сентября 2011

Я подозреваю, что вы включили QT до secmodt.h.«slots» - это ключевое слово moc в QT.

Update

Я догадался об этом, потому что QT - это популярная библиотека (и я знал, что она использует slots).плюс, этот тип ошибки выглядел как типичная ерунда препроцессора.

QT #define d 'slots' для ничего для использования с его мета-объектным компилятором.

вы можете либо: (возможно?)включите QT в какой-то момент после secmodt.h, или (возможно?) добавьте no_keywords в вашу конфигурацию - затем молитесь богам компилятора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...