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

1
substituição de comando é supostamente o equivalente a $() do 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 executo no Bash, funciona perfeitamente bem. Também digitando -lSDL2 ao invés de usar pkg-config funciona também.

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

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

Por que isso não funciona no Fish?

    
por user170107 12.05.2016 / 18:07

1 resposta

3

Este é um problema conhecido no Fish, # 982 . Aparentemente, eles querem que você use eval ou 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')
    
por 12.05.2016 / 18:11