Fish 中使用 pkg-config 命令替换

Fish 中使用 pkg-config 命令替换

鱼的命令替换应该与 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')

相关内容