Now I have build the dylib successfully, but how to register it with Firefox? I put the t.dylib and t.xpt in /Applications/Firefox.app/Content/ MacOS/components and start the firefox, but seems it can not load my component.
Then I try the regxpcom like this:
regxpcom -x /Applications/Firefox.app/Contents/MacOS/components .
but it says "bus error"...

在 2006-10-7,上午5:51,Jamie Newton 写道:

I have my component building working now for MacOSX. Heres my makefile ( we build mozilla from source so the SDK paths may be unfamiliar to some). I
hope this will be of use to those who are still struggling

PLATFORM := $(shell sh ../../../../../install/unix/cplatname identify)
SOURCEDIR := ../../../../../modules/ServerManager
OUTPUTDIR := ../../../../../apps/xena/components
DISTDIR      :=
../../../../../thirdparty/mozilla/$(PLATFORM)/mozilla/obj-xulrunner/ dist
SHAREDDIR := ../../../../../shared
GECKO_SDK    := $(DISTDIR)/sdk
GECKO_DEFS := -DMOZILLA_STRICT_API
CXX   := c++
CXXFLAGS := -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -fno-rtti

INCLUDES :=  -I $(GECKO_SDK)/include  -I $(SHAREDDIR)/XPCOM  \

LDFLAGS  :=   -lxpcomglue_s -lxpcom -lnspr4 -lplds4 -lplc4 -lmozjs

OBJECTS  := ServerManagerImpl.o ServerManagerModule.o

servermanager: $(OUTPUTDIR)/ServerManager.xpt
$(OUTPUTDIR)/ServerManager.dylib


$(OUTPUTDIR)/ServerManager.xpt: $(SOURCEDIR)/ServerManager.idl
 $(GECKO_SDK)/bin/xpidl -m typelib -w -v -I $(GECKO_SDK)/idl -o
$(OUTPUTDIR)/ServerManager $(SOURCEDIR)/ServerManager.idl; \
 $(GECKO_SDK)/bin/xpidl -m header  -w -v -I $(GECKO_SDK)/idl -o
$(XPCOMDIR)/ServerManager $(SOURCEDIR)/ServerManager.idl;  \
 $(DISTDIR)/bin/regxpcom -x $(OUTPUTDIR); \
 touch $(DISTDIR)/bin/.autoreg

$(OUTPUTDIR)/ServerManager.dylib:
 $(CXX) -Os -c -o ServerManagerImpl.o $(GECKO_DEFS) $(INCLUDES)
$(SOURCEDIR)/ServerManagerImpl.cpp $(CXXFLAGS)
 $(CXX) -Os -c -o ServerManagerModule.o $(GECKO_DEFS) $(INCLUDES)
$(SOURCEDIR)/ServerManagerModule.cpp $(CXXFLAGS)
 $(CXX) -dynamiclib -o $(OUTPUTDIR)/ServerManager.dylib $(GECKO_DEFS)
$(OBJECTS) -L$(GECKO_SDK)/lib -L$(GECKO_SDK)/../lib -Wl,- executable_path,$(GECKO_SDK)/bin
$(LDFLAGS) -framework CoreFoundation -framework XUL

clean:
 rm -f $(OUTPUTDIR)/ServerManager.xpt
 rm -f $(OUTPUTDIR)/ServerManager.dylib

"Benjamin Smedberg" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
Keren Dong wrote:
Hi,

I am trying build a xpcom sample from
http://www.iosart.com/firefox/xpcom/ on Mac OS X, and my makefile is as
bellow:

I'm not sure why people keep using this tutorial (perhaps because there's nothing better), but it is wrong in many ways. In particular, it is using
the standalone glue (-DXPCOM_GLUE) for components, which is not
recommended.
See http://developer.mozilla.org/en/docs/XPCOM_Glue

--BDS


_______________________________________________
dev-tech-xpcom mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-xpcom

_______________________________________________
dev-tech-xpcom mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-xpcom

Reply via email to