zshrc ファイルから複数の LDFLAGS、CPPFLAGS、PKG_CONFIG_PATH をエクスポートする

zshrc ファイルから複数の LDFLAGS、CPPFLAGS、PKG_CONFIG_PATH をエクスポートする

私の.zshrcファイルには既存のOpenSSLエクスポートがあります。

export LDFLAGS="-L/usr/local/opt/[email protected]/lib"
export CPPFLAGS="-I/usr/local/opt/[email protected]/include"
export PKG_CONFIG_PATH="/usr/local/opt/[email protected]/lib/pkgconfig"

zlibこのライブラリが必要なパッケージをコンパイルする必要があります。古いフラグを上書きせずにこれらのフラグを追加するにはどうすればよいですか?

:私はパスに対して行われたようにそれらを一緒に接続しようとしましたが、うまくいかないようです./configure。実行時に単一のフラグとして読み取られます。

ld: 警告: '-L/usr/local/opt/ オプションのディレクトリが見つかりません。[Eメール保護]/lib:-L/usr/local/opt/zlib/lib'

誰もがこれを正しく実行する方法を提案できますか?

ベストアンサー1

これらの変数がシェルの起動スクリプトに設定されている理由、または設定が必要な理由は不明です。なぜなら、これらの変数はconfigure使用できるスクリプトによって決定される必要があるからですpkg-config(したがって、PKG_CONFIG_PATH修正はまだ興味深いかもしれません)。私はこれを無視し、これらの変数を追加する方法に焦点を当てました。


LDFLAGS変数には、CPPFLAGSソフトウェアのコンパイル時にさまざまな段階でツールに渡されるコマンドラインフラグが含まれています。これには、スペースで区切られたフラグを含める必要があります。

export LDFLAGS=-L/some/directory

export後で(変数は一度だけ使用する必要があります):

LDFLAGS="$LDFLAGS -L/other/directory"

または、

LDFLAGS+=" -L/other/directory"

このPKG_CONFIG_PATH変数はツールで使用されますpkg-config。マニュアルには次のように指定されています(私が強調しています)。

PKG_CONFIG_PATH
これを指定するために使用できます。コロンで区切られたパスのリストパッケージファイルを検索します。与えられた場合、このパスのリストは標準検索パスの前に追加されます。

だから、

export PKG_CONFIG_PATH=/some/directory

後:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/other/directory

または、

PKG_CONFIG_PATH+=:/other/directory

おすすめ記事