大津です。

チト対応が遅くなりましたが、 issueを出したところ今朝ベンが修正してくれま
した。

https://github.com/bnoordhuis/node-iconv/issues/62

手元で [email protected] ではエラーにならないのを確認しましたので、もう npm
update していただいて大丈夫です。

原因ですが、結果 Visual Studio の問題(仕様? 使い方?)に起因したもので
した。

http://stackoverflow.com/questions/3729515/visual-studio-2010-2008-cant-handle-source-files-with-identical-names-in-diff
http://stackoverflow.com/questions/3695174/visual-studio-2010s-strange-warning-lnk4042

これ知らないでネイティブモジュールを作っているとWindowsでハマりそう。

(2013/03/09 1:53), Hikaru wrote:
> [email protected]にしてみたところエラーも出ず、正常に動作しました
> 
> 暫く悩んでも自分ではどうすることもできず、ここで相談してみましたが
> ひとまずの解決策と原因まで特定していただけて本当に助かりました
> 
> 2013年3月8日金曜日 15時29分39秒 UTC+9 shigeki:
> 
>     大津です。
> 
>     これ結構難度の高い問題でしたね。
> 
>     実は、ちょうど一か月前に NODE_MODULE_VERSION が 11 にあげられました。
> 
>     
> https://github.com/joyent/node/commit/15508589a163b0c9f09ac608281f9ebb015d4deb
>     
> <https://github.com/joyent/node/commit/15508589a163b0c9f09ac608281f9ebb015d4deb>
> 
> 
>     このモジュールバージョンから、新しくネィテブアドオンに module オブ
>     ジェク
>     トが渡されるようになったのでアドオン内で module.exports が使えるように
>     なったのです。(これはこれで node-v0.10の重要な変更点なんですが…)
> 
>     ここに Win系のバグが入ったんだろうと当初見込んでたんですが、違ってま
>     した。
> 
>     結局、GYPか Visual Studio のバグなのか、それとも iconv 自身が悪いのかま
>     だ根本原因までは特定できていませんが、時を同じく1か月前に
>     [email protected] でソースファイルが binding.cc が src/iconv.cc に変わっ
>     た事がきっかけだと思われます。
> 
>     直接的な原因は、 deps/libiconv/lib/iconv.c と src/iconv.cc のリンクオブ
>     ジェクトが重なり無視されて、関数シンボルが取得できなくなってました。
>     ビルド時に Warning が出てました。(当初見逃してた。)
> 
>     古い iconv バージョンだとちゃんと動作すると思うので、一度
> 
>     npm install [email protected]
> 
>     で動作を確認して私まで報告していただけますか?
> 
>     もしこれで直るなら私の手元のエラー原因と同じなので、ベン宛に issue あげ
>     ようかと思ってます。
> 
>     ただベンは Win 系の開発機持ってなさそうなので、ファイル名変えて回避する
>     かもしれません。
> 
>     (2013/03/07 17:56), Hikaru wrote:
>      > v0.9の半ばくらいまでは動いていたのですが、バージョンアップをした
>     ところ使
>      > えなくなりました
>      > いつか治るかもと思っていたのですがv0.9.12になってもエラーが出るま
>     まです
>      > 環境はWinXP32bitです
>      >
>      > Error: Symbol iconv_module not found.
>      >      at Module.load (module.js:356:32)
>      >      at Function.Module._load (module.js:312:12)
>      >      at Module.require (module.js:364:17)
>      >      at require (module.js:380:17)
>      >      at Object.<anonymous> (C:\Documents and
>      > Settings\Admin\node_modules\iconv\lib\iconv.js:24:14)
>      >      at Module._compile (module.js:456:26)
>      >      at Object.Module._extensions..js (module.js:474:10)
>      >      at Module.load (module.js:356:32)
>      >      at Function.Module._load (module.js:312:12)
>      >      at Module.require (module.js:364:17)
>      >
>      > どのようにしたら回復できるでしょうか?
>      > また代替モジュールはあるのでしょうか?
>      >
>      > --
>      >
>      > ---
>      > このメールは Google グループのグループ「Node.js 日本ユーザグルー
>     プ」の登
>      > 録者に送られています。
>      > このグループから退会し、メールの受信を停止するには、
>      > [email protected] <javascript:> にメールを送信します。
>      > その他のオプションについては、https://groups.google.com/groups
>     /opt_out <https://groups.google.com/groups/opt_out>
>      > にアクセスしてください。
>      >
>      >
> 
> -- 
> 
> ---
> このメールは Google グループのグループ「Node.js 日本ユーザグループ」の登 
> 録者に送られています。
> このグループから退会し、メールの受信を停止するには、 
> [email protected] にメールを送信します。
> その他のオプションについては、https://groups.google.com/groups/opt_out 
> にアクセスしてください。
> 
> 

-- 

--- 
このメールは Google グループのグループ「Node.js 日本ユーザグループ」の登録者に送られています。
このグループから退会し、メールの受信を停止するには、[email protected] にメールを送信します。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。


メールによる返信