鱼的命令替换应该与 Bash 等效$()
,但这个简单的示例失败了:
g++ -std=c++14 -Wall -Wextra -pedantic -g (pkg-config --cflags sdl2) \
test.cpp (pkg-config --libs sdl2)
/usr/bin/ld: cannot find -lSDL2
如果我在 Bash 中运行它,它工作得很好。也可以用打字-lSDL2
代替使用pkg-config
。
澄清一下,没有什么问题pkg-config
:
echo (pkg-config --libs sdl2)
-lSDL2
为什么这对 Fish 不起作用?
答案1
这是 Fish 中的一个已知问题,第982章。显然他们希望您使用eval
或解析输出以将空格转换为换行符:
eval g++ -o code code.cc (pkg-config opencv --cflags --libs)
g++ -o code code.cc (pkg-config opencv --cflags --libs | perl -pe 's/\s+/\n/g')