Полезная информация

Пользователи не любят читать документацию. Станьте оригинальным, будьте не как все. Ознакомьтесь с нашей базой знаний.

№105-02-2009 11:04:41

alex171069
Участник
 
Группа: Members
Зарегистрирован: 16-01-2009
Сообщений: 26
UA: Firefox 3.0

XPcom

Господа, я начал понимать, что чегото не понимаю я взял пример простейшего XPCOM компонента по адресу
http://www.linux.org.ru/wiki/en/XUL_XPCOM  и попытался его скомпилить как в статье по этому адресу описано .
Компилил G++ в строгом соответствии с путями и наличием необходимых SDK .
Процесс протекал на LINUX RED HUT
  И как же ябыл удивлен увидем такое колличество ошибок !?
     
       g++ -Wall -Os -o MyComponent.so -include mozilla-config.h -DXPCOM_GLUE -DXPCOM_GLUE_USE_NSPR -I /home/al/NetBeansProjects/XPCOM/gecko/include  -I/home/al/NetBeansProjects/XPCOM -fno-rtti -fno-exceptions -shared -L /home/al/NetBeansProjects/XPCOM/gecko/lib -lxpcomglue_s -lxul -lxpcom -lplds4 -lplc4 -lnspr4 -lpthrea         MyComponent.cpp MyComponentModule.cpp
In file included from MyComponent.h:3,
                 from MyComponent.cpp:1:
IMyComponent.h:9:19: warning: extra tokens at end of #ifndef directive
IMyComponent.h:36:63: error: macro "NS_DEFINE_STATIC_IID_ACCESSOR" passed 2 arguments, but takes just 1
/home/al/NetBeansProjects/XPCOM/gecko/include/nsISupportsBase.h:80: предупреждение: ‘class nsISupports’ has virtual functions but non-virtual destructor
/home/al/NetBeansProjects/XPCOM/gecko/include/nsIProgrammingLanguage.h:32: предупреждение: ‘class nsIProgrammingLanguage’ has virtual functions but non-virtual destructor
/home/al/NetBeansProjects/XPCOM/gecko/include/nsIClassInfo.h:33: предупреждение: ‘class nsIClassInfo’ has virtual functions but non-virtual destructor
IMyComponent.h:25: предупреждение: ‘class IMyComponent’ has virtual functions but non-virtual destructor
MyComponent.h:10: ошибка: expected constructor, destructor, or type conversion before ‘class’
MyComponent.cpp:3: ошибка: ‘MyComponent’ не был декларирован
MyComponent.cpp: In function ‘nsrefcnt AddRef()’:
MyComponent.cpp:3: ошибка: нет декларации ‘mRefCnt’ в этой области видимости
MyComponent.cpp: At global scope:
MyComponent.cpp:3: ошибка: ‘MyComponent’ не был декларирован
MyComponent.cpp: In function ‘nsrefcnt Release()’:
MyComponent.cpp:3: ошибка: нет декларации ‘mRefCnt’ в этой области видимости
MyComponent.cpp:3: ошибка: некорректное использование ‘this’ в функции, не являющейся элементом
MyComponent.cpp: At global scope:
MyComponent.cpp:3: ошибка: ‘MyComponent’ не был декларирован
MyComponent.cpp: In function ‘nsresult QueryInterface(const nsIID&, void**)’:
MyComponent.cpp:3: ошибка: некорректное использование ‘this’ в функции, не являющейся элементом
MyComponent.cpp:3: ошибка: некорректное использование ‘this’ в функции, не являющейся элементом
MyComponent.cpp: At global scope:
MyComponent.cpp:5: ошибка: ‘MyComponent’ не был декларирован
MyComponent.cpp:5: ошибка: ISO C++ запрещает декларации ‘MyComponent’ без типа
MyComponent.cpp: In function ‘int MyComponent()’:
MyComponent.cpp:6: предупреждение: в функции, которая должна возвращать значение, отсутствует оператор return
MyComponent.cpp: At global scope:
MyComponent.cpp:8: ошибка: expected constructor, destructor, or type conversion before ‘::’ token
MyComponent.cpp:11: ошибка: ‘MyComponent’ is not a class or namespace
In file included from MyComponent.h:3,
                 from MyComponentModule.cpp:2:
IMyComponent.h:9:19: warning: extra tokens at end of #ifndef directive
IMyComponent.h:36:63: error: macro "NS_DEFINE_STATIC_IID_ACCESSOR" passed 2 arguments, but takes just 1
/home/al/NetBeansProjects/XPCOM/gecko/include/nsISupportsBase.h:80: предупреждение: ‘class nsISupports’ has virtual functions but non-virtual destructor
/home/al/NetBeansProjects/XPCOM/gecko/include/nsIProgrammingLanguage.h:32: предупреждение: ‘class nsIProgrammingLanguage’ has virtual functions but non-virtual destructor
/home/al/NetBeansProjects/XPCOM/gecko/include/nsIClassInfo.h:33: предупреждение: ‘class nsIClassInfo’ has virtual functions but non-virtual destructor
/home/al/NetBeansProjects/XPCOM/gecko/include/nsIFactory.h:31: предупреждение: ‘class nsIFactory’ has virtual functions but non-virtual destructor
/home/al/NetBeansProjects/XPCOM/gecko/include/nsIModule.h:33: предупреждение: ‘class nsIModule’ has virtual functions but non-virtual destructor
/home/al/NetBeansProjects/XPCOM/gecko/include/nsIGenericFactory.h:68: предупреждение: ‘class nsIGenericFactory’ has virtual functions but non-virtual destructor
IMyComponent.h:25: предупреждение: ‘class IMyComponent’ has virtual functions but non-virtual destructor
MyComponent.h:10: ошибка: expected constructor, destructor, or type conversion before ‘class’
MyComponentModule.cpp: In function ‘nsresult MyComponentConstructor(nsISupports*, const nsIID&, void**)’:
MyComponentModule.cpp:4: ошибка: нет декларации ‘MyComponent’ в этой области видимости
MyComponentModule.cpp:4: ошибка: нет декларации ‘inst’ в этой области видимости
MyComponentModule.cpp:4: ошибка: expected type-specifier before ‘MyComponent’
MyComponentModule.cpp:4: ошибка: expected `;' before ‘MyComponent’
MyComponentModule.cpp: At global scope:
MyComponentModule.cpp:10: ошибка: expected `}' before ‘{’ token
MyComponentModule.cpp:10: ошибка: expected `}' before ‘{’ token
MyComponentModule.cpp:10: ошибка: expected `}' before ‘{’ token
MyComponentModule.cpp:10: ошибка: expected ‘,’ or ‘;’ before ‘{’ token
MyComponentModule.cpp:10: ошибка: expected declaration before ‘}’ token
MyComponentModule.cpp:4: предупреждение: ‘nsresult MyComponentConstructor(nsISupports*, const nsIID&, void**)’ defined but not used
MyComponentModule.cpp:6: предупреждение: ‘components’ defined but not used
make: *** [build] Ошибка 1

  Я просто хотел бы узнать как же всеже скомпилить компанент - мне еще предстоит вставлять свои функции в компонент и перекомпилировать с ними
  Есть у кого нибудь опыт в этом трудном деле ?

Отсутствует

 

№205-02-2009 15:07:27

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.0
Веб-сайт

Re: XPcom

Выделить код

Код:

IMyComponent.h:36:63: error: macro "NS_DEFINE_STATIC_IID_ACCESSOR" passed 2 arguments, but takes just 1

Мне кажется, все ошибки начинаются здесь.
Возможно, скомпилированный xpidl *.h, требует ручной правки.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№305-02-2009 16:06:51

alex171069
Участник
 
Группа: Members
Зарегистрирован: 16-01-2009
Сообщений: 26
UA: Firefox 3.0

Re: XPcom

Это ясно что ноги оттуда ростут но не ясно почему .
Вроде все норма в этом файле незнаю с какой стороны и подъехать к проблеме.

Отсутствует

 

№413-05-2009 00:00:36

iav
Участник
 
Группа: Members
Зарегистрирован: 27-10-2005
Сообщений: 63
UA: Minefield 3.6

Re: XPcom

alex171069 пишет

Вроде все норма в этом файле незнаю с какой стороны и подъехать к проблеме.

Так что это было?

Отсутствует

 

№513-05-2009 01:04:32

Crazy-EyE
Участник
 
Группа: Members
Зарегистрирован: 20-06-2008
Сообщений: 81
UA: Firefox 3.0

Re: XPcom

Может надо было заново сгенерировать IMyComponent.h из IMyComponent.idl. У меня недавно было что-то похожее, когда файл из архива был сделан в одной версси Gecko SDK (1.8), а компилировался с другой (1.9)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]