Страницы: 1
Господа, я начал понимать, что чегото не понимаю я взял пример простейшего 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
Я просто хотел бы узнать как же всеже скомпилить компанент - мне еще предстоит вставлять свои функции в компонент и перекомпилировать с ними
Есть у кого нибудь опыт в этом трудном деле ?
Отсутствует
IMyComponent.h:36:63: error: macro "NS_DEFINE_STATIC_IID_ACCESSOR" passed 2 arguments, but takes just 1
Мне кажется, все ошибки начинаются здесь.
Возможно, скомпилированный xpidl *.h, требует ручной правки.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Это ясно что ноги оттуда ростут но не ясно почему .
Вроде все норма в этом файле незнаю с какой стороны и подъехать к проблеме.
Отсутствует
Может надо было заново сгенерировать IMyComponent.h из IMyComponent.idl. У меня недавно было что-то похожее, когда файл из архива был сделан в одной версси Gecko SDK (1.8), а компилировался с другой (1.9)
Отсутствует
Страницы: 1