インターネットからダウンロードした大きなプロジェクトをコンパイルしようとしていますが、configure、make、make install を実行するカスタム スクリプトがあります。問題は、いくつかの互換性フラグを渡したいのですが、プロジェクトが LDFLAGS を認識しない libtool を使用しているため、互換性フラグを渡す別の方法を見つけなければならないことです。したがって、構成を実行した後のスクリプトには、次のようなコードがあります。
COMPATFLAG="-gcc-name=/usr/local/gcc-4.2.1/bin/gcc"
sed -i "s/CC -shared/CC -shared ${COMPATFLAG}/g" libtool
${COMPATFLAG}
コンパイルされているプラットフォームに応じて異なる値を取得する可能性があるため、sedステートメントに平文で入れることはできません。問題は、それが機能しないことです - の値の代わりに空のスペースを取得します${COMPATFLAG}
。代わりに書くsed -i "s/CC -shared/CC -shared TEST/g" libtool
と、文字列「TEST」がファイルに追加されます。一重引用符を使用する${COMPATFLAG}
と、変数の値ではなく文字列が取得されます。エクスポートしようとして${COMPATFLAG}
も、まだ機能しません。なぜうまくいかないのかわかりません。何か案が?