npm installを使用してnode.jsモジュール(この場合はzmq)をインストールしようとしています。このモジュールに必要なClibは、標準の場所にインストールされていません。npmへの追加のインクルードパスとlibパスを指定するにはどうすればよいですか?「CFLAGS="-I / path / to /include"npminstall」のようなものを試しましたが効果がありません。
質問する
4125 次
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/zmq
、PKG_CONFIG_PATH=/opt/zmq/lib/pkgconfig pkg-config libzmq --libs
戻っ-L/opt/zmq/lib -lzmq
てnpm 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 に答える