2013-10-07 3 views
1

나는 fish shell을 Fedora 19에서 사용합니다. this 간단한 gtkmm 예제를 컴파일하려고했습니다.물고기에서 gcc와 함께 pkg-config를 사용하는 중 오류가 발생했습니다.

나는 물고기에서 다음 명령을 사용하여 컴파일 할 때 :

g++ sample.cc -o sample `pkg-config gtkmm-3.0 --cflags --libs` 

는 다음과 같은 오류를 보여줍니다 반면

g++: error: `pkg-config: No such file or directory 
g++: error: gtkmm-3.0: No such file or directory 
g++: error: unrecognized command line option ‘--cflags’ 
g++: error: unrecognized command line option ‘--libs`’ 

를, 나는 같은에 대한 bash는를 사용할 때 그것은 올바르게 컴파일됩니다. 이는 pkg-config가 올바른 플래그를 가져 오는 것을 의미합니다.

나는 최근에 물고기을 사용하기 시작 했으므로 거기에 무엇이 잘못 되었는가를 모른다. 누군가 이걸로 나를 도울 수 있습니까?

또한,이 stackoverflow 내 첫 번째 질문입니다. 안녕 얘들 아.

감사합니다.

+0

'yum install pkgconfig'을 시도해보십시오. – devnull

+0

이미 pkg-config가 있습니다. 그리고 코드는 ** bash **에서 컴파일되지만 ** fish **에서는 컴파일되지 않습니다. –

+0

이 경우'물고기 '의'PATH'가 깨졌습니다. – devnull

답변

3

물고기 쉘은 Bash가 사용하는 백틱 대신 명령 대체를 위해 ()을 사용합니다. 참조 : The Fish tutorial. 이것은 당신을 위해 작동하지 않는 이유입니다, 당신의 PATH에 문제가 될 것 같지는 않습니다.

g++: error: unrecognized command line option '... '

: ( ...pkg-config 출력 임)

는 꽤 이유를 이해하지 않지만, 어떤 이유로 당신은 단순히 다른 오류를 가 발생할 수 있습니다, 괄호 역 따옴표를 교체하는 경우

물고기 명령 eval을 사용하면이 문제를 해결할 수 있습니다. 그래서 :

eval g++ sample.cc -o sample (pkg-config gtkmm-3.0 --cflags --libs)

이 작동해야한다.

1

이 문제를 추적하는 문제가있다 : 기본적 https://github.com/fish-shell/fish-shell/issues/982

이 문제는 물고기, 인수를 바꿈에 의해 분리되는 것으로 가정한다는 것이다 여기서 알 수있는 PKG-설정 출력 공간 반면 :

$ echo "'"(pkg-config --cflags eigen3)"'" 
'-I/usr/include/eigen3 ' 
관련 문제