我正在尝试编译一个从 Internet 下载的大型项目,并且我有一个自定义脚本可以运行 configure、make 和 make install。问题是我想传递一些兼容性标志,但该项目使用的 libtool 无法识别 LDFLAGS,我必须找到另一种方法来传递我的兼容性标志。因此,在运行配置后的脚本中,我的代码如下所示:
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}
它仍然不起作用。我不知道为什么会出错。任何想法?