Pergunta

Estou tentando vincular minha extensão XPCOM contra o 1.9.3A3Pre SDK e recebo o seguinte:

Erro lnk2001: símbolo externo não resolvido _moz_xmalloc

Então, com que lib com que eu preciso vincular? o documentação não diz.

Isso está no Windows agora, mas também precisarei construir no Mac e no Linux (32bits/64bits).

EDIT: Agora com recompensa.

Edit: Atualização: Acontece que o FF3.7 foi cancelado. Portanto, não preciso me preocupar com isso até o FF4.

Foi útil?

Solução

definir 'XPCOM_GLUE'Na propriedade de definição de pré -processador C ++. Isso corrigirá o erro de vinculação.

Outras dicas

Eu tenho o mesmo erro, e o vinculação a Mozalloc ajuda para isso.

Tente definir o moz_no_mozalloc Ao compilar sua extensão, você obterá uma DLL que usa os alocadores do seu CRT. (Não se esqueça de usar os alocadores ns_* para memória compatível com XPCOM.)

  1. Adicionar MOZ_NO_MOZALLOC dentro C ++-> Propriedade do Processador-> Definição.

  2. Usar xpcomglue_s_nomozalloc.lib ao invés de xpcomglue_s.lib dentro Linker-> input-> dependências adicionais

Ficará tudo bem!

Lembrete Nota: Outra opção que pode causar isso, mesmo que todo o resto pareça estar configurado corretamente no projeto, está apontando para a pasta LIBS errada - como a versão de 32 bits para uma construção de 64 bits.

Editar v40 mozalloc.lib mudou o nome para mozglue.lib e tem alguns métodos adicionais.

Editar v41 mozglue.lib mudou o nome para mozcrt.lib

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top