“pkg-config”가“–cflags”옵션으로 빈 공간 만 인쇄하는 이유는 무엇입니까? 사용하여 컴파일 gcc myfile.c $(pkg-config –libs

다음을 사용하여 libcurl을 설치했습니다 sudo apt-get install libcurl4-openssl-dev. 내 프로그램을 컴파일하려고 할 때 libcurl이있는 위치를 GCC 컴파일러에 전달해야한다는 것을 읽었습니다 (나를 위해 / usr / include에 있지만). 따라서 항 http://ubuntuforums.org/showthread.php?t=1175115 제가 사용하여 컴파일

gcc myfile.c $(pkg-config --libs --cflags libcurl) -o myprogram

그러나 내가 입력 pkg-config --cflags libcurl하면 아무것도 인쇄되지 않습니다 (공백 만). 플래그를 추가하면 프로그램이 올바르게 컴파일됩니다 --libs. 나는 왜 pkg-config --cflags libcurl아무것도 반환 하지 않는지 이해하지 못한다 )



답변

  • --cflags명령 행에서 패키지 / 라이브러리에 필요한 모든 프리 프로세서 또는 컴파일 플래그를 제공 하기 위한 것입니다. libcurl에 필요한 플래그가 없기 때문에 공백이 생깁니다 . 그것은 완전히 정상입니다.

답변

아무것도 인쇄하지 않는 명령은 정확히 무엇입니까?

당신은이 pkg-config --libs --cflags libcurl$()당신에 gcc당신이 일을 말할 명령. 그러나 pkg-config출력을 pkg-config --cflags libcurl without--libs 로 표시하기 위해 실행중인 명령을 참조했습니다 .

그것은 가능한 당신은 단지 내부에 다른 명령을 실행하는되어 $()gcc당신이 결과를 확인하기 위해 별도이기 때문에 명령?

명확히하기 위해 맨 페이지가 약간 혼란 스럽지만 두 명령의 실제 동작 은 다릅니다 . 이것은 libcurl4-openssl-dev설치된 Ubuntu 11.10 amd64 시스템에서 가져온 것입니다 .

ek@Apok:~$ pkg-config --libs --cflags libcurl
 -lcurl
ek@Apok:~$ pkg-config --cflags libcurl

ek@Apok:~$

답변