Substituição de comando com pkg-config no Fish

1

A substituição de comandos de Fish deve ser equivalente à de Bash, $()mas este exemplo simples falha:

g++ -std=c++14 -Wall -Wextra -pedantic -g (pkg-config --cflags sdl2) \
    test.cpp (pkg-config --libs sdl2)
/usr/bin/ld: cannot find -lSDL2

Se eu executá-lo no Bash, funciona perfeitamente bem. Também digitar em -lSDL2vez de usar pkg-configfunciona também.

Para esclarecer, não há nada errado com pkg-config:

echo (pkg-config --libs sdl2)
-lSDL2

Por que isso não funciona para o Fish?

user170107
fonte

Respostas:

3

Esse é um problema conhecido no Fish, nº 982 . Aparentemente, eles querem que você use evalou analise a saída para converter os espaços em novas linhas:

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')
user170107
fonte