私の.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
答え2
既存のエクスポートを最後に追加するのと同じくらい簡単であることがわかりました。
export LDFLAGS="-L/usr/local/opt/zlib/lib $LDFLAGS"
export CPPFLAGS="-I/usr/local/opt/zlib/include $CPPFLAGS"
export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig:$PKG_CONFIG_PATH"
どこにもガラガラがなく、すべて正しくコンパイルされます。
回答ありがとうございます。本当にありがとうございます。