На какую lib в gecko 1.9.3 SDK я ссылаюсь, чтобы использовать moz_xmalloc ()? - PullRequest
2 голосов
/ 17 марта 2010

Я пытаюсь связать свое расширение XPCOM с SDK 1.9.3a3pre и получаю следующее:

ошибка LNK2001: неразрешенный внешний символ _moz_xmalloc

Итак, на какую библиотеку мне нужно ссылаться? документация не говорит.

Это прямо сейчас на Windows, но мне нужно, чтобы он также работал на Mac и Linux (32-бит / 64-бит).

Редактировать: теперь с наградой.

Редактировать: Обновление: оказывается, FF3.7 был отменен. Так что мне не нужно беспокоиться об этом до FF4.

Ответы [ 5 ]

4 голосов
/ 19 марта 2010

У меня та же ошибка, и для этого помогает ссылка на mozalloc.

1 голос
/ 24 мая 2013
  1. Добавить MOZ_NO_MOZALLOC в C ++ -> Препроцессор-> Свойство определения .

  2. Используйте xpcomglue_s_nomozalloc.lib вместо xpcomglue_s.lib в Linker-> Input-> Дополнительные зависимости

Все будет хорошо!

1 голос
/ 09 ноября 2011

определить 'XPCOM_GLUE' в свойстве Определение препроцессора C ++. Это исправит ошибку компоновки.

1 голос
/ 14 апреля 2010

Попробуйте определить MOZ_NO_MOZALLOC при компиляции вашего расширения, после чего вы получите DLL, которая использует распределители вашего CRT. (Не забудьте использовать NS_ * распределители для XPCOM-совместимой памяти.)

0 голосов
/ 02 ноября 2013

примечание для напоминания: еще одна опция, которая может вызвать это, даже если все остальное правильно настроено в проекте, указывает на неправильную папку libs - например, 32-битную версию для 64-битной сборки.

edit v40 mozalloc.lib изменил имя на mozglue.lib и имеет несколько дополнительных методов.

edit v41 mozglue.lib изменил имя на mozcrt.lib

...