問題タブ [gyp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - GYP プロジェクトで c++11 を使用する
gyp を使用して単純なクロスプラットフォーム C++ プロジェクトを作成しようとしています。現在、私はこれを Mac で試していますが、最終的には Windows、Linux、iOS、および Android 用にビルドしたいと考えています。HEre は、私が使用している単純な gyp ファイルです。この gyp の xcode/msvc プロジェクトだけでなく、ninja も使用できるようにしたいと考えています。
-std=c++11 と -libstdc++ を clang のコマンドラインに追加できるようにする必要があることはわかっていますが、現在、clang の代わりに g++ を使用して生成されたビルド ファイルしか表示されません。
これは私のgypファイルです。
node.js - module.js:485 process.dlopen(ファイル名, module.exports);
作成したノード ネイティブ アドオンでこのエラーが発生します。開発マシンでは正常に動作しますが、テスト マシンでは機能しません。
C++ コードでは、いくつかの dll を使用しています。
/clr オプションを使用しています。問題が何であるかについてのアイデアはありますか? ありがとう。
chromium - gypの変数のスコープは何ですか?
gypのドキュメントには、次の'variables'ようなセクションが記載されています。
「変数」:ファイルの他のさまざまな部分で補間および使用できる変数の定義。
(強調鉱山)。これは、含まれているgypファイルで変数を使用することを除外しているようであり、変数を設定する他のgypファイルを含める可能性も除外しているようです。
これは正しいです?これらの変数のスコープは何ですか? また、変数をグローバルに設定するにはどうすればよいですか? build/common.gypiChromium ではが多くの変数を設定していることがわかりますが、 Chromiumgyp_chromiumは plain とは異なるマジック スクリプトも使用していgypます。
windows - node-postgres node.js モジュールをインストールできません
観察してください:
どうやら、問題は libpq.lib がリンクされていないため、リンケージ ビルド ステップで参照が欠落していることです。
しかし、問題が存在する理由がわかりません。
configureターゲットでgypを直接実行しました:
そこに表示されるかどうかはわかりませんが、この出力には postgres への参照はまったくありません。
これが binding.gyp ファイルです (私の OS は Windows 7 です)。
次の理由により、構成は成功するはずです。
それでも何かがおかしい。
この問題のトラブルシューティング方法を教えてください。
node.js - NodeJS が不安定: コンパイルが必要なモジュールを npm-install できない
私は NodeJS 0.11.x ディストリビューションをしばらく使用してきました。これは主に、ジェネレーターとyieldステートメントが非同期管理の点で大きな進歩をもたらすと信じているためです ( coffy-scriptとsuspendを参照)。
とはいえ、最先端の不安定な NodeJS インストールを実行すると、重大な後退があります。C コンポーネントをコンパイルしようとするとnpm install xy-module、gyp(常に? 時々?) 失敗します。
これがそうでなければならない一般的な理由はありますか?状況を改善するために適用できるトリック/パッチ/構成はありますか? 特定のモジュールが NodeJS 0.10.x でコンパイルされるが、0.11.x で失敗する場合、0.12.x が利用可能になり次第、コンパイルすることを期待する必要がありますか?
更新NodeJS メーリング リストに問題をクロスポストしたところ、ben noordhuis が詳細を共有してくれました。彼のメッセージを引用する:
主な変更点は以下の2点です。
Persistent<T>から派生しなくなりましたHandle<T>。Persistent からハンドルを再作成するには、 を呼び出しますLocal<T>::New(isolate, persistent)。で分離を取得できますIsolate::GetCurrent()(ただしIsolate::GetCurrent()、V8 の新しいバージョンではおそらくなくなることに注意してください)。C++ コールバックとアクセサーのプロトタイプが変更されました。以前は、関数は次のようになりました。
v0.11 および v0.12 では、次のようになります。
/li>
他にも変更がありましたが、これら 2 つはすべてのネイティブ アドオンに影響します。