2

XPCOM 拡張機能を 1.9.3a3pre SDK にリンクしようとすると、次のようになります。

エラー LNK2001: 未解決の外部シンボル _moz_xmalloc

では、どのライブラリにリンクする必要がありますか? ドキュメントは言いません。

これは現在 Windows 上にありますが、Mac と Linux (32 ビット/64 ビット) でもビルドする必要があります。

編集:賞金付きになりました。

編集: 更新: FF3.7 がキャンセルされたことが判明しました。だからFF4までは気にしなくていい。

4

5 に答える 5

4

同じエラーが発生しました。mozalloc へのリンクが役立ちます。

于 2010-03-19T07:39:44.730 に答える
1

拡張機能をコンパイルするときにMOZ_NO_MOZALLOCを定義してみてください。そうすると、CRTのアロケータを使用するDLLが得られます。(XPCOM互換メモリにはNS_ *アロケータを使用することを忘れないでください。)

于 2010-04-13T21:21:03.310 に答える
1

XPCOM_GLUEC++ プリプロセッサ定義プロパティで' ' を定義してください。リンクエラーを修正します。

于 2011-11-08T20:30:46.080 に答える
1
  1. C++->Preprocessor->Definition プロパティに追加MOZ_NO_MOZALLOCします。

  2. Linker->Input->Additional Dependenciesxpcomglue_s_nomozalloc.libの代わりxpcomglue_s.libに使用

大丈夫でしょう!

于 2013-05-24T03:31:40.610 に答える
0

注意:プロジェクトで他のすべてが正しく構成されているように見えても、これを引き起こす可能性のある別のオプションは、64 ビット ビルドの 32 ビット バージョンなど、間違った libs フォルダーを指している場合です。

edit v40 mozalloc.libは名前が に変更されmozglue.lib、いくつかのメソッドが追加されました。

編集 v41 の mozglue.lib名前がに変更されましたmozcrt.lib

于 2013-11-01T21:47:57.613 に答える