다음을 사용하여 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:~$