魚のコマンドの置き換え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
これはフィッシュで知られている問題です。第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')