./configureに複数の-I、-L、および-lフラグをどのように入れますか?

./configureに複数の-I、-L、および-lフラグをどのように入れますか?

を使用しようとしています./configure

私は持っています

  1. 3つのインクルードディレクトリ

    -I/path1/include
    -I/path2/include
    -I/path3/include
    
  2. 2つのリンクディレクトリ

    -L/path1/lib
    -L/path2/lib
    
  3. 2つの-lロゴオプション

    -ltensorflow
    -lasan
    
  4. 2つのコンパイルフラグ

    -O3
    -g
    

これらのすべてのフラグをオプションとしてどのように効率的に配置できますか./configure

答え1

これを行う標準的な方法は値を提供することです。さまざまな変数./configure通話中:

./configure CPPFLAGS="-I/path1/include -I/path2/include -I/path3/include" \
            CFLAGS="-O3 -g" \
            LDFLAGS="-L/path1/lib -L/path2/lib" \
            LIBS="-ltensorflow -lasan"

C ++コンパイラを使用する場合は、CXXFLAGS代わりに(または追加で)を指定してくださいCFLAGS

これらの変数は環境でも設定できますが、推奨される方法は、コマンドライン引数で指定することです。再利用のために値を保存するため。バラよりコンパイル時の強制カバレッジ構成(例:CXXFLAGSなど)もっと学ぶ。

ほとんどの場合、多くのパスをフラグ付けすることはまれです。代わりに、さまざまな依存関係を見つけることができる場所をスクリプトに--with伝えるオプションを見つけたいと思います。configureたとえば、--with-tensorflow=/path/to/tensorflowこれにより適切な-Iフラグが設定されます。-L走る

./configure --help

どのオプションが利用可能かを確認してください。

答え2

export CFLAGS="-I/path1/include -I/path2/include -I/path3/include -O3 -g"
export CXXFLAGS=$CFLAGS
export LDFLAGS="-L/path1/lib -L/path2/lib -ltensorflow -lasan"
./configure && make

関連情報