問題タブ [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.

0 投票する
6 に答える
127051 参照

makefile - CFLAGS 対 CPPFLAGS

CPPFLAGS はプリプロセッサによって使用されるのに対し、CFLAGS (または C++ の場合は CXXFLAGS) はコンパイラ用であることを理解しています。

しかし、私はまだ違いを理解していません。

#include でインクルードされるヘッダー ファイルのインクルード パスを指定する必要があります。

どのような状況でコンパイラに追加のインクルード パスを与える必要がありますか?

一般に、プリプロセッサが必要なヘッダー ファイルを見つけてインクルードする場合、追加のインクルード ディレクトリについて通知する必要があるのはなぜですか? CFLAGS はどのような用途に使用されますか?

(私の場合、実際には、これらの両方でプログラムをコンパイルできることがわかりましたこれにより、混乱が増します... CFLAGSまたはCPPFLAGS を使用して目標を達成できます (少なくとも autoconf コンテキストで)。何が得られますか?)

0 投票する
4 に答える
219362 参照

cmake - CMakeを使用してCFLAGSおよびCXXFLAGSオプションを設定します

Linuxで実行されているコードをデバッグしたいだけで、デバッグビルド(-O0 -ggdb)が必要です。だから私はこれらのものを私のに追加しましたCMakeLists.txt

私がコンパイルしようとしたとき、私は使用して冗長になりましたmake VERBOSE=1 そして私はこのように出力を観察しました

どうやらコードはでコンパイルされて"-g -O2"おり、これは私が望むものではありません。どうすればそれ"-O0 -ggdb"だけを使用するように強制できますか?

0 投票する
2 に答える
6995 参照

makefile - OpenSSL をコンパイルするとき、.rodata と -fPIC は何を意味しますか?

openssl をコンパイルしようとしていますが、エラーが発生します。使用中の CFLAGS は次のとおりです。

.rodata誰かが私に次の文が何であり、何を意味するのか説明してもらえますか?

libcrypto.a が何であるかはわかりませんが、openssl の一部であるようです。

どうすればこれを修正できますか?

0 投票する
1 に答える
1560 参照

bash - 変数を渡してシェルスクリプトでCFLAGSを作成しますか?

シェル スクリプトを使用して gnu make (4.1) でいくつかの C プログラムをビルドしようとしています。ファイルから読み取ったさまざまな CFLAGS パラメータを使用したいと考えています。ファイルには次のような行が含まれています。

私は次のようなことをしようとしています

しかし、私の試みはすべて次のエラーで終わります:

そこで、ファイルの内容を -O1 (-freorder-functions) の後のパラメーターのみに変更し、シェル スクリプトに -O1 を追加しようとしました。

(そして、あまり賢明ではないと思われる他の多くのこと)が、それでも同じエラーメッセージが表示されます。

シェル スクリプトで make するパラメータをハードコーディングすると、問題なく動作します。

これがばかげた質問である場合は申し訳ありませんが、このようなことがどのように行われるかの例を見つけることができないようで、シェルスクリプトを初めて使用するため、ここで変数をどのように扱っているかよくわかりません. 私が CFLAGS に渡そうとしていることのエコーは、私には問題ないように見えます。

0 投票する
0 に答える
467 参照

linux - Rails 4 アプリケーション用の cflags / distcc を使用したバンドラーのインストール

Raspberry Pi で Rails 4 アプリケーションをセットアップしています。bundle install の実行時に gem のインストールを高速化するために、Linux デスクトップに (ARM クロス コンパイラを使用して) distcc サーバーをセットアップしました。

私が見つけられないのは、「bundle install」を実行するときにdistccを使用するコマンドをCFLAGSまたはその他の手段で渡す方法です。Bundler は --with-cflags スイッチを認識しません。

解決策を探しているときに、gem ごとにこれを行う方法をここで見つけましたが、1 つのコマンドですべてを実行できるセットアップを好みます。

これを達成する方法について何か提案はありますか?

ありがとう

0 投票する
1 に答える
2750 参照

cmake - CMake SET コマンドが期待どおりに機能しない (CMake が事前定義されたキャッシュ変数の値を設定しない)

ビルドで CMake を使用しています。次のようなコンパイラフラグを設定しようとしています:

ただし、コンパイラ フラグの 1 つが設定されていないため、ビルドが失敗します。

CMake-GUI の変数の値が空であることを確認すると、次のようになります。

ここに画像の説明を入力

誰かが何が起こっているのか指摘できますか?

0 投票する
4 に答える
11700 参照

gcc - CFLAGS を明示的に gcc に渡す必要がありますか?

私は多くのチュートリアルを読みCFLAGS、公式ドキュメントも調べました。彼らが言うところはどこでもCFLAGS暗黙的ですが、例のmakefileで明示的にコンパイラに渡します。

では、この文脈で「暗黙的」という用語は何を意味するのでしょうか? メイクファイルで宣言CFLAGS=-O2し、後で単に , と言うとgcc -c foo.c -o foo.o-O2アクティブになるかどうか (つまり、本当に暗黙的ですか)? もしそうなら、なぜすべてのチュートリアル (公式ドキュメントを含む) が例でそれを明示的に渡しているのですか?