Страницы: 1
Добрый день
Версия мозилла 1.9
Собираю фековую динамическую либу c использованием опции MOZILLA_INTERNAL_API
void foo() {
nsCAutoString charset;
}
Makefile:
CXX =g++
CPPFLAGS += -fno-rtti \
-fno-exceptions \
-DMOZILLA_INTERNAL_API \
-shared
# Change this to point at your Gecko SDK directory.
GECKO_SDK_PATH = /SDK/
GECKO_INCL = /sdk/
GECKO_CONFIG_INCLUDE = -I $(GECKO_INCL)/include/uconv
GECKO_CONFIG_INCLUDE += -I $(GECKO_INCL)/include/xpcom
GECKO_CONFIG_INCLUDE += -I $(GECKO_INCL)/include/string
GECKO_DEFINES = -DXPCOM_GLUE
GECKO_INCLUDES = -I $(GECKO_SDK_PATH)/include
GECKO_LDFLAGS = -L $(GECKO_SDK_PATH)/lib -lxpcomglue \
-lnspr4 \
-lplds4
FILES = foo.cpp
TARGET = libfoo.so
build:
$(CXX) -Wall -Os -o $(TARGET) $(GECKO_CONFIG_INCLUDE) $(GECKO_DEFINES) $(GECKO_INCLUDES) $(GECKO_LDFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(FILES)
chmod +x $(TARGET)
cp $(TARGET) ../base/build
При попытке собрать бинарный файл с использованием этой либы возникает ошибка:
/libfoo.so: undefined reference to `nsACString_internal::~nsACString_internal()'
/libfoo.so: undefined reference to `nsACString_internal::nsACString_internal(char*, unsigned int, unsigned int)'
Если либа собрана без опции MOZILLA_INTERNAL_API ошибки не возникает
Как можно решить эту проблему, мне необходио линковать либу которая использует MOZILLA_INTERNAL_API и возможно ли это сделат для Mozilla 1.9?
Спасибо
Отсутствует
Видимо, нельзя.
https://developer.mozilla.org/En/XPCOM_Glue:
Internal linkage will be unavailable to extension authors in XULRunner 1.9 (Firefox 3) because the nonfrozen symbols will not be exported from libxul. Extension and application authors currently using internal linkage should read the guide on Migrating from Internal Linkage to Frozen Linkage.
Отсутствует
Страницы: 1