Pregunta

Estoy intentando conectar mi extensión XPCOM contra el SDK 1.9.3a3pre y me sale lo siguiente:

  

LNK2001 error: símbolo externo sin resolver _moz_xmalloc

Entonces, ¿qué lib Qué necesito para enlazar a? Los href="https://developer.mozilla.org/en/Infallible_memory_allocation" no dice.

Esto es en Windows en este momento, pero lo que necesita para construir en Mac y Linux (32 bits / 64 bits) también.

Editar:. Ahora, con abundancia

Editar: Actualización: Resulta que FF3.7 fue cancelada. Por lo que no tiene que preocuparse de esto hasta FF4.

¿Fue útil?

Solución

definir 'XPCOM_GLUE' en C ++ preprocesador propiedad Definition. Se fijará el error de enlace.

Otros consejos

Tengo mismo error, y la vinculación a mozalloc ayuda para eso.

Trate de definir MOZ_NO_MOZALLOC al compilar su extensión, a continuación, recibirá un DLL que utiliza asignadores de su CRT. (No se olvide de utilizar el NS_ * asignadores de memoria compatible con XPCOM.)

  1. Añadir MOZ_NO_MOZALLOC en C ++ -.> Preprocessor-> Definición propiedad

  2. Uso xpcomglue_s_nomozalloc.lib en lugar de xpcomglue_s.lib en Linker-> input-> Dependencias adicionales

Se va a estar bien!

nota de aviso: otra opción que puede causar esto a pesar de todo lo demás parece estar configurado correctamente en el proyecto, está apuntando a la carpeta libs equivocada - versión como de 32 bits para una generación de 64 bits .

editar v40 mozalloc.lib ha cambiado de nombre a mozglue.lib y tiene algunos métodos adicionales.

editar v41 mozglue.lib ha cambiado de nombre a mozcrt.lib

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top