moz_xmalloc() を使用するには、gecko 1.9.3 SDK のどのライブラリにリンクすればよいですか?
-
20-09-2019 - |
質問
XPCOM 拡張機能を 1.9.3a3pre SDK にリンクしようとすると、次のような結果が得られます。
エラーLNK2001:未解決の外部シンボル _moz_xmalloc
それで、どのライブラリにリンクする必要があるのでしょうか?の ドキュメンテーション とは言いません。
これは現在 Windows 上にありますが、Mac や Linux (32 ビット/64 ビット) 上でもビルドする必要があります。
編集:今なら報奨金付き。
編集:アップデート:FF3.7は中止になったみたいですね。なのでFF4までは気にする必要はありません。
解決
C ++プリプロセッサ定義プロパティの 'XPCOM_GLUE
' を定義。これは、リンクエラーを修正します。
他のヒント
私は同じエラーを持っている、とmozallocにリンクすると、そのために役立ちます。
あなたの拡張機能をコンパイルするとき、あなたは、あなたのCRTのアロケータを使用してDLLを取得しますMOZ_NO_MOZALLOCを定義してみます。 (XPCOM互換メモリ用NS_ *アロケータを使用することを忘れないでください。)
追加
MOZ_NO_MOZALLOC
で C++ -> プリプロセッサ -> 定義プロパティ.使用
xpcomglue_s_nomozalloc.lib
の代わりにxpcomglue_s.lib
で リンカー -> 入力 -> 追加の依存関係
大丈夫でしょう!
リマインダーメモ: プロジェクト内で他のすべてが正しく構成されているように見えても、これを引き起こす可能性があるもう 1 つのオプションは、間違った libs フォルダーを指していることです (64 ビット ビルドの 32 ビット バージョンなど)。
v40 を編集 mozalloc.lib
に名前が変わりました mozglue.lib
いくつかの追加メソッドがあります。
v41 を編集 mozglue.lib
に名前が変わりました mozcrt.lib