問題タブ [ninja]
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++ - 再びビルドシステムについて。完全な正しさについて話しましょう
最近、私は tup を試しましたが、その正確性と速度に非常に感銘を受けました。また、ファイル システムを監視することでツールが非常に堅牢になっているという事実にも感銘を受けました。また、非常に理解しやすいです。何か問題が発生することはありません。問題が発生した場合は、それが表示されます。以下の要件を満たす限り、より主流でクロスプラットフォーム対応のツールを見つけたいと思います。
私の質問は次のとおりです。
次のものを備えた代替ビルドツールを知っていますか?
- O(1) は再構築します。
- 完全に正しい依存関係の追跡。
- (オプション) ファイルシステム アクセスを利用します。
編集:これは主観的な「ツールをお勧めします」という質問ではありません。これらの要件を満たすツールの名前を教えてください。私のユースケースでの動作についてさらに調査したいからです。
c++ - 削除された `.cpp` ファイルをコンパイルしようとする CMake/Ninja
cpp
と を使用してプロジェクトからファイルを削除するcmake
とninja
、最初にビルド ディレクトリを完全に削除して最初からやり直さないと簡単にコンパイルできないことがわかりました。CMake および/または Ninja は、コンパイルするすべてのcpp
ファイルへの多数の参照を削除しているようです。CMake を再実行する前に CMake キャッシュを削除しても、すべての参照が削除されるわけではありません。
これは既知の問題ですか? 解決策はありますか?私は時々 を実行しましrm $(grep -R <filename> <builddir>)
たが、それはひどいクラッジです。
編集:この問題を再現できなかったため、間違っていたようです。CMake を手動で再実行すると、ソースのリストを生成するために使用しても、ファイルの正しいリストが常に生成されるように見えます。.cpp
GLOB
c# - 課題 - C++ dll を使用した Ninjascript C# インターフェイス
よし、これで契約だ。NinjaTrader プラットフォーム用に作成されたインジケーター (ninjascript で作成されています... 基本的に C# にプラットフォーム固有のコードが追加されています) を使用して C++ dll をインターフェイスしようとしています。dll を意図したとおりに動作させるには、構造体配列をインジケーターから dll に渡すことができる必要があります。インジケーター コードでは、ref を介して構造体配列を渡しています。dll では、構造体配列をポインターとして受け入れようとしています。これにより、大量の情報を NinjaTrader に戻す方法を考え出すことなく、dll の内容を編集することができます。基本的に、dll は構造体配列ポインターを受け取り、内容に直接アクセスできるようにします。次に、dll 関数が bool true フラグを Ninja に返すと、struct 配列にアクセスし、情報をチャートにレンダリングします。シンプルですね。私もそう思いました。
これが問題です。NinjaTrader は安全でないコードを許可しません。そのため、構造体配列を dll に渡してポインタとして受け取ろうとすると、すぐにプラットフォームがクラッシュします。構造体配列を ref (*&) へのポインターとして受け取った場合は機能しますが、制御が Ninja に戻されると、構造体配列で行われたすべての編集は存在しなくなります。
そこで、このプロセスを高速化するために、非常に簡単なインジケーターと、私がやろうとしていることを示す dll コード セットを作成しました。忍者インジケータコードは次のとおりです。
そして今、C++ dll コード:
上記で貼り付けたこのコードにより、チャートにインジケーターを配置してアクティブになった瞬間に NinjaTrader がクラッシュすることを覚えておいてください。クラッシュしないようにする唯一の方法は、C++ TestFunk 関数の引数をTestStruct *&testy
orに変更することです。演算子も変更する必要があることTestStruct **testy
に注意してください。.
->
私がすべて言ったので、この制限を回避して実際のポインターにアクセスする方法を知っている人はいますか?クラッシュしない?
javascript - javascript忍者の本の秘密の例
javascript忍者の本を読み始めましたが、以下の例で「これ」という言葉が必要な理由が本当にわかりません。それなしで試してみましたが、コードが実行されません。以下のコンテキストで「これ」はどのような目的に役立ちますか? 私は「これ」を理解していると思います(またはまったく理解していないかもしれません)が、以下では理解できません。私にお知らせください!ありがとうございました。
windows - CMake -G Ninja on Windows は x64 を指定します
Ninjaジェネレーターを使用してWindowsでCMakeを使用しています
これは、デフォルトの Windows x86 ツールチェーンを使用します。Ninja ジェネレーターを使用して x64 を指定する方法は?
PS: Visual Studio で x64 を生成する方法を知っています。
ninja - chrome リモート webapp ビルド プロセスがスタックするのはなぜですか?
Chrome リモート デスクトップ コードを使用して Chrome リモート デスクトップ Web アプリを構築したいと考えています。リポジトリからフェッチして、chrome リモート webapp をビルドしたいと考えています。4時間から次のコマンドを試しましたが、スタックして応答がありません。4時間後、次のようなログを出力します
忍者 -C out/Release/remoting_webapp
ログ: ninja バージョン 0.1.3 初期化中
ログ: マジック グループ: gid=0 (ルート)
ログ: メイン ループに入る
ログ: 初期 pid 配列の生成..
ログ: プロセス アクティビティを監視中
ログ: 新しいルート プロセス: avahi-autoipd[14897] ppid=14896 uid=0 gid=0
log: - ppid uid=105(avahi-autoipd) gid=113 ppid=1
log: + avahi-autoipd はマジック グループに属しています。
log: NEW ROOT PROCESS: avahi-autoipd[14944] ppid=14943 uid=0 gid=0
log: - ppid uid=105(avahi-autoipd) gid=113 ppid=1
log: + avahi-autoipd はマジック グループに属しています。大丈夫!
ここで立ち往生し、それ以上先に進みません。どのくらいの時間がかかりますか?エラーはありますか?
私を助けることができる人はいますか?