問題タブ [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.
build - 忍者とmsbuildの実際のパフォーマンスは?
ネイティブ コードのビルドに関しては、ninja が msbuild よりもはるかに優れた並列処理を行うという約束に基づいて、巨大な C++ および C# コード ベースを msbuild から cmake/ninja に移植することを考えています。これを実際に行った経験がある人はいますか? 移植のコストが実際に価値があるかどうかを知りたいです。理想的には、ビルド時間の前後:)
また、忍者がmsbuildよりもはるかに高速であると思われるのはなぜですか? BがAの出力をリンクする必要がある場合でも、プロジェクトAとBのオブジェクトファイルを並行して構築するようなことをしなければならないと思いますか?
build - ビルドクロムのクリーニング
指示に従ってWINでクロムをコンパイルします(https://www.chromium.org/developers/how-tos/build-instructions-windows)
出力 (「out/Release」) は非常に大きなフォルダー (20 GB) を取得しninja -t clean
ます。フォルダーのサイズが 8 GB に縮小された後
バイナリだけを取得することは可能ですか? または、手動で選択する必要がある場合、クロムに必要なファイルは何ですか?
ios - iOS 用の webrtc ライブラリのビルド中にエラーが発生しました
http://www.webrtc.org/native-code/ios (および関連リンク)にある Google の指示に従って、iOS 用の webrtc を構築しようとしています。同様の手順で過去にビルドできたことを思い出しますが、これはもはや当てはまりません。
私が行った手順は次のとおりです。
ダウンロードの前提条件:
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
$ export PATH=`pwd`/depot_tools:"$PATH"
リポジトリをダウンロード:
$ export GYP_DEFINES="OS=ios"
$ fetch webrtc_ios
ビルドの準備:
$ cd webrtc/src
$ export GYP_DEFINES="build_with_libjingle=1 build_with_chromium=0 libjingle_objc=1"
$ export GYP_DEFINES="$GYP_DEFINES OS=ios target_arch=armv7"
$ エクスポート GYP_GENERATOR_FLAGS="output_dir=out_ios"
$ エクスポート GYP_CROSSCOMPILE=1
$ gclient ランフック
建てる:
$ ninja -C out_ios/Debug-iphoneos AppRTCDemos
/bin/sh で失敗する最後のコマンドまで、すべて問題ありません: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc: No such file or directory:
なんらかの理由で、忍者は私たちがシミュレーター用にビルドしていると考えています。私のシステムには XCode 7 がインストールされていることに注意してください。
何が間違っているのか、またはこれを回避する方法はありますか?
よろしく、アントニス
cmake - 翻訳単位のコンパイルの失敗に加えて、ターゲットの失敗を報告する
何百ものターゲットがあり、そのうちのいくつかはビルドが成功するために重要ではなく (たとえば--keep-going
、make または-k 9000
ninja で使用している)、どの cmake ターゲットが失敗したかを把握する必要があるとします。
ビルド後のコマンドを使用add_custom_command()
すると、次のように名前を出力する cmake ターゲットに追加できます。
しかし、失敗はどうですか?
リンクが失敗した場合は、使用しているもの (ninja/make/msbuild) の詳細な出力を解析して、失敗したターゲットを確認できます。
ただし、翻訳単位のコンパイルが失敗した場合、特定のソース ファイルがコンパイルされず、どの cmake ターゲットが正確に失敗したかを特定するのが難しいという唯一のエラーが発生します。
私が思いついた唯一のことは、ビルドが失敗した後にこれを実行することです。ninja -nv
これにより、詳細なドライランが作成され、リンクコマンドをインターセプトして、そのように失敗した cmake ターゲットを解析できます...
他のアイデアはありますか?
cmake - CMake OBJECT ライブラリ + MinGW がリンクしていない
CMake と忍者を使用して静的ライブラリを構築しています。スタティック ライブラリは、複数のCMake OBJECT ライブラリからビルドされます。
また、qmake と MinGW (4.92、32 ビット) を使用して実行可能ファイルをビルドしています。
問題は、静的ライブラリが実行可能ファイルとリンクしていないことです。オブジェクト ライブラリのすべての関数は未定義の参照です。
忍者を使用しないと、この問題は再現しません。
google-chrome - 忍者:やることなし
Ninjaでnwjsを構築しようとしています。以前にコードを数回ビルドしましたが、この問題は解決できません。
次の忍者メッセージが表示されます。
助言がありますか?
やるべき仕事があるはずです。私はまだコードを構築していません。
windows - コマンドとしての忍者バッチファイル
このように忍者でバッチファイルをルールコマンドとして使いたい
しかし、それは
コマンドの前にcmd /c
. これが機能しない理由についての情報を見つけるのは難しいと思いました。私の推測では、Windows は実際.exe
にはCreateProcess()
.
直接渡されたときに機能させることはできますか、CreateProcess()
それとも使用する必要がありcmd /c
ますか?
cmake - cmake 応答ファイル Unix Makefile ジェネレーターと ninja ジェネレーター
CMake 3.4.1 は応答ファイルを使用して、ninja とリンクするためのコマンド ラインの長さを短縮しますが、UNIX の makefile とはリンクしません。IAR 組み込みツールチェーンを使用してクロス コンパイルしていますが、指定された応答ファイルの構文 (@CMakeFiles/proj.rsp) をサポートしていません。高速な忍者ビルド システムを使用したいのですが、この応答ファイルの回避策が必要です。応答ファイルの生成を無効にするか、ツールチェーンがサポートする構文 (つまり -f filename) を使用する必要があります。それらのいずれかを行う方法はありますか?