問題タブ [cflags]
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++ - CMakeLists.txtを変更せずに(おそらくCLIを介して)CFLAGSとCXXFLAGSをcmakeに渡すにはどうすればよいですか?
私が取り組んでいるプロジェクトの CMakeLists.txt を変更することはできません。そこで使用されている cmake ツールチェーン ファイルは、リリース用に C および CXX FLAGS のみを宣言しています。
したがって、デバッグのために、独自のフラグを強制する必要があります (つまり、CFLAGS と CXXFLAGS に -O0 -DDEBUG を追加する)。
そこで、次の例を使用してcliを試しました
main.cpp:
CMakeLists.txt:
cmake の呼び出し:
期待どおりの結果は、2 つの変数を空のままにします
と私は疑問に思っています。
cmake "--trace" を使用して何が行われているかを確認しようとしましたが、cmake が同じ名前の環境変数から変数を初期化する関連部分が見つかりませんでした。
使用できる別の変数はありますか? おそらく別の方法ですか?
linux - コマンドラインで CFLAGS を Makefile に渡す
Makefile プロジェクトのカバレッジを監視しようとしています。
しかし、上記のコマンドは機能していないようで、次のようになります。
最初の行から、gcc が呼び出されたときに CFLAGS が適切に追加されていないことがわかります。「make」の起動中に gcc のビルド オプションに cflags を含めるにはどうすればよいですか?
問題があれば、Ubuntu 14でBashを使用しています。
c - 特定のファイルをコンパイルし、特定のターゲットが選択されている場合にのみ Makefile にフラグを追加するにはどうすればよいですか?
現在、C プロジェクトの Makefile を作成するときに問題に直面しています。
特に、私のプロジェクトには少なくとも 2 つの Makefile ターゲット (target_light
とtarget_full
) が必要target_light
です。これがデフォルトのターゲットです。
target_light
システムに外部ライブラリをインストールする必要があるいくつかのソース ファイルを除いて、すべてのソース ファイルをコンパイルする必要があります ( src/extra
.c ファイルの場合は に保存され、include/extra
.h ファイルの場合は に保存されます)。
target_full
代わりに、外部ライブラリを必要とするファイルを含むすべてのファイルをコンパイルする必要があります。また、 および にいくつかのフラグを追加する必要がCFLAGS
ありLDLIBS
ます。
現在、次のような Makefile があります。
私は現在、要求された場合にのみ追加のファイルをコンパイルするために、target_full
この Makefileに追加する方法を見つけるのに苦労しています。SRC_DIR_EXTERNAL_FILES
OBJ_DIR_EXTERNAL_FILES
SRC_EXTERNAL_FILES
OBJ_EXTERNAL_FILES
この操作を実行するにはどうすればよいですか? Makefile 内でこれを行う良い方法はありますか?
CFLAGS
私の2番目の質問は、フラグを両方に同時に追加するにはどうすればよいLDLIBS
ですtarget_full
か? 私は書いてみました:
そして、次の$(EXECNAME)
行を変更します。
ただし、追加のLDLIBS
フラグは、が選択されている場合でも常に考慮されるようtarget_light
です。
次の行のように 2 回繰り返す必要がありますtarget_full
か?
事前にどうもありがとうございました。
cmake - CMake CXXFlags -O2 / -O3
私は CMake にまったく詳しくありませんが、使用されている CXXFlags (-O2 および -O3) をクリーンアップするタスクを取得しました。
ログには次のように出力されます: "USING CXXFLAGS = '-g -O2 -fdebug-prefix-map=/build/cgal-ZyilPF/cgal-4.11=. time -D_FORTIFY_SOURCE=2 -frounding-math -O3 -DNDEBUG'"
-O2 と -O3 は最適化のためのものであることがわかりましたが、なぜ両方が使用される可能性があるのでしょうか?