hi, I'm trying to build a sample xpcom component written in c++ on a
mac.
the sample i'm trying is taken from
http://www.iosart.com/firefox/xpcom/ this website.
in order to have a working gecko sdk on my machine i downloaded the
mozilla source and compile the xpcom module as follows:
./configure --enable-application=standalone
--enable-standalone-modules=xpcom
make
and when i try to build the sample code the compiler complains always
about some undefined symbols!
i tried to adjust the provided makefile, and the last version i have is
the following:
CXX = c++
CPPFLAGS += -fno-rtti -fno-exceptions
# Change this to point at your Gecko SDK directory.
GECKO_SDK_PATH = ../../mozilla/dist
XPIDL = $(GECKO_SDK_PATH)/bin/xpidl
XPIDL_INCLUDE = $(GECKO_SDK_PATH)/idl
GECKO_DEFINES = -DXPCOM_GLUE
GECKO_INCLUDES = -I$(GECKO_SDK_PATH)/include
-I$(GECKO_SDK_PATH)/include/xpcom -I$(GECKO_SDK_PATH)/include/nspr
GECKO_LDFLAGS = -L$(GECKO_SDK_PATH)/lib -lxpcomglue -lnspr4 -lplds4
FILES = MyComponent.cpp MyComponentModule.cpp
TARGET = MyComponent.so
build:
$(CXX) -bind_at_load -o $(TARGET) $(GECKO_CONFIG_INCLUDE)
$(GECKO_DEFINES) $(GECKO_INCLUDES) $(CPPFLAGS) $(CXXFLAGS) $(FILES)
$(GECKO_SDK_PATH)/lib/libxpcomglue_s.a $(GECKO_LDFLAGS)
chmod +x $(TARGET)
strip $(TARGET)
but the compiler complains about the following undefined symbols:
/usr/bin/ld: Undefined symbols:
_main
_CFBundleCopyExecutableURL
_CFBundleGetMainBundle
_CFRelease
_CFStringGetCString
_CFURLCopyFileSystemPath
_CFURLCreateCopyDeletingLastPathComponent
_kCFAllocatorDefault
_CFBundleCopyPrivateFrameworksURL
_CFURLCopyAbsoluteURL
_CFURLCreateCopyAppendingPathComponent
_CFURLGetFileSystemRepresentation
___CFConstantStringClassReference
collect2: ld returned 1 exit status
ideas?
thanks
_______________________________________________
dev-tech-xpcom mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-xpcom