4

npm installを使用してnode.jsモジュール(この場合はzmq)をインストールしようとしています。このモジュールに必要なClibは、標準の場所にインストールされていません。npmへの追加のインクルードパスとlibパスを指定するにはどうすればよいですか?「CFLAGS="-I / path / to /include"npminstall」のようなものを試しましたが効果がありません。

4

2 に答える 2

4

zeromqモジュールは、次のように構築できます(他のモジュールも同じように機能する場合があります)。

  • zipファイルをダウンロードし、一時的な場所に解凍します。/tmp/zeromq.node-master
  • binding.gypファイルを編集する
  • OSに対応するセクションを見つけて、そこにインクルードパス-Iとライブラリ-Lパスを追加します。

例えば

['OS=="linux"', {
  'cflags': [
    '<!(pkg-config libzmq --cflags 2>/dev/null || echo "")',
    '-I/usr/local/zeromq3/include'
  ],
  'libraries': [
    '<!(pkg-config libzmq --libs 2>/dev/null || echo "")',
    '-L/usr/local/zeromq3/lib'
  ],
}],
  • 一時ディレクトリでnpminstallを実行します。 npm install /tmp/zeromq.node-master
于 2013-06-06T14:26:22.597 に答える
0

別の解決策(ファイルを変更する必要はありません)はPKG_CONFIG_PATH、ライブラリがインストールされている場所を指すpkg-configの変数を使用することです。zmqがインストールされている場合は/opt/zmqPKG_CONFIG_PATH=/opt/zmq/lib/pkgconfig pkg-config libzmq --libs戻っ-L/opt/zmq/lib -lzmqnpm install実行できます。 PKG_CONFIG_PATH=/opt/zmq/lib/pkgconfig npm install

ノードアプリを起動する前LD_LIBRARY_PATHに、それに応じて設定する必要があります。LD_LIBRARY_PATH=/opt/zmq/lib node app.js

于 2016-01-06T09:39:20.627 に答える