問題タブ [ldflags]

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 投票する
1 に答える
1206 参照

makefile - autotools configure からコンパイラ/リンカー フラグを削除します

でビルドできるプロジェクト(C用のAntlr3)があります./configure && make && make install

コンパイル コマンドで使用されるフラグの 1 つに-Wl,-soname -Wl,libantlr3c.so. コマンド全体は次のとおりです。

-Wl,-soname -Wl,libantlr3c.soその部分だけを取り除くにはどうすればよいですか?

CFLAGSコンパイラとリンカーのフラグは、LDFLAGSconfigure コマンドでオーバーライドできることを理解しています。このリンクによると、それは次のようなものです

環境変数として使用できる/使用する必要があることは理解していますが、次のようなものです

ただし、これらの使用はすべてのorをオーバーライドしようとすると思います。フラグを除外したいだけです(これは、コンパイラがフラグをリンカーに渡すことを意味します。CFLAGSLDFLAGS-soname-Wl,

LDFLAGS=-soname=またはのようなものCFLAGS="-Wl,soname -Wl,"、およびそれらのバリエーションを使用した私の試みは、これまでのところ成功していません。

この質問から、Makefile 内からフラグを削除できたかのように見えますが、コマンドを使用してコマンド ラインからフラグをオーバーライドすることに適用できるとは思えませんconfigure。これらの変数をmakeコマンドの代わりにコマンドに提供することも可能ですconfigureが、それも成功しませんでした。

コマンドから生成されるため、Makefile を変更しても意味がないことに注意してくださいconfigure

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

c - CFLAGS CPPFLAGS と LDFLAGS は cc を呼び出しますが、値を gcc に渡しません

簡単な printf C コードを書き、簡単なメイクファイルを作成しました。CFLAGS、CPPFLAGS、および LDFLAGS を使用して make を実行すると、変数の値が cc 実行に入り、その後、次のようにそれらの値を使用せずに gcc が実行されます。

ビルドされたプログラムを実行すると、定義されていない #else の printf が返されるため、define は定義されていません。

teste.c

メイクファイル