2016-05-09 8 views
1

特定のフラグを使用したときに、autotoolsを使用してヘッダファイルに#define FOOコードを追加します。特定のフラグが使用されているときに#defineを追加します

私が持っているプロジェクトは、たとえばインライン関数を使うためにヘッダを使って静的ライブラリを作成しています。 -Dオプションを使用すると、作成時に使用されますが、このライブラリを使用して各コンパイルで追加する必要があります。これは避けたいものです。

どうすればいいですか?

+0

とautotoolsのにスクリプトとして上記を組み込むことができ

(echo "#define FOO" ; cat myheader_pregen.hpp) > myheader.hpp 

- :次のシェルコマンドは、トリックを行うだろうDオプション。この文は解析されません。なぜあなたは-Dを使うことができないのかをもっと詳しく説明できますか? –

+0

@ n.m。私が持っているプロジェクトでは、たとえばインライン関数を使うためにヘッダを使って静的ライブラリを作成しています。 -Dオプションを使用すると、作成時に使用されますが、このライブラリを使用して各コンパイルで追加する必要があります。これは避けたいものです。 –

+0

これははるかに良い説明です。 –

答えて

0

あなたの最善の策は、既存のファイルから必要なヘッダーファイルを生成することです。あなたはそれが静的ライブラリを作成するために、ヘッダ上にあるので、私は使用することはできません」this

+0

autoconfがconfig.hを生成しませんか?そのような#defineを付ける場所のようです。 –

関連する問題