我正在尝试在代码::块16.01(构建:2016年2月2日,03:15:41 - wx2)的构建后步骤(构建选项... /前/后构建步骤)上执行以下操作.8.12(Linux,unicode) - 64位):
PYMODULE="`printf ${PROJECT_NAME}.so | sed 's/^lib/_/'`"
但它无法在构建日志中显示:
s/^lib/_/'`"': 1: s/^lib/_/'`"': Syntax error: EOF in backquote substitution
然后我试过了
echo libdaoc.so | sed 's/^lib/_/'
它在终端中工作正常,但在Code :: Blocks pre / post构建步骤中,管道操作在 Build log 中显示失败:
echo libdaoc.so | sed 's/^lib/_/'
Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]...
-n, --quiet, --silent
suppress automatic printing of pattern space
...
如何使它工作?
基本上我正在尝试从Code :: Blocks环境进行构建,然后通过cbp2make导出,所以我需要使用环境变量而不是硬编码的固定名称。
答案 0 :(得分:1)
不需要sed
,任何 POSIX shell都可以使用参数替换执行相同的工作:
PYMODULE="_${PROJECT_NAME#lib}.so"
以上假定前缀为" lib "存在,(OP似乎意味着它应该)。
答案 1 :(得分:0)
我最终使用Code :: Blocks script expansion作为@agc为Makefile提供的交互式构建和解决方案......基本上,Makefile需要在cb2make
生成后进行一些后处理:
我对 cb2make 和 Code :: Blocks 抱有更高的期望。尝试制作跨平台解决方案,即使在单一平台上也无法执行足够的构建。