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

これはフィッシュで知られている問題です。第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')

おすすめ記事