“pkg-config”가“--cflags”옵션으로 빈 공간 만 인쇄하는 이유는 무엇입니까?


2

다음을 사용하여 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아무것도 반환 하지 않는지 이해하지 못한다 )

답변:


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

괜찮아. 이제 말이되는 것 같습니다
Hello

1
--cflags아무것도 반환하지 않는 또 다른 이유는 중복을 피하기 위해 기본 경로가 반환되지 않기 때문입니다. unix.stackexchange.com/a/362297/36693
MakisH

0

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

당신은이 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:~$

pkg-config --libs --cflags libcurl pkg-config --libs libcurl과 동일한 내용을 인쇄합니다. pkg-config --cflags를 입력하면 아무 것도 인쇄되지 않습니다. 오타가 수정되었습니다. 내 질문을 더 잘 이해하는 데 도움이
Hello

@Hello 선행 공간을 제외하고는 사실입니다. 그러나 귀하의 질문은 당신이 달렸다고 말하지 않습니다 pkg-config --libs libcurl. 당신이 도망 쳤다고 말합니다 pkg-config --cflags libcurl. 표시하도록 내 질문을 편집 했으므로의 출력은의 출력과 pkg-config --cflags libcurl다릅니다 pkg-config --libs --cflags libcurl.
엘리아 카간

나는 그것을 거부하지 않습니다. 여기에서 명확히하려고하는 것은 pkg-config를 사용하는 것이 요점입니다. 여분의 공간 만 인쇄 할 때의 플래그입니다
Hello

@Hello 그것은 당신이 당신의 질문에서 묻는 것과는 매우 다르게 보입니다. 명확하게하기 위해 질문을 다시 편집 할 수 있습니다. 이 의견을 읽었을지라도, 현재 귀하가 요구하는 정보를 이해하는 데 어려움을 겪고 있습니다.
Eliah Kagan

@EliahKagan : 제목, 질문이 수정되었습니다. 그가 생각하는 바에 대한 내 대답을 참조하십시오.
ish
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.