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

관련 정보