Почему "pkg-config" печатает только пробел с опцией "--cflags"?

Я установил 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 ничего не возвращает)

2 ответа

Решение
  • --cflags предназначен для предоставления вам любых флагов препроцессора или компиляции, необходимых для пакетов / библиотек в командной строке; вы получаете пустое место, потому что нет таких обязательных флагов для libcurl; это совершенно нормально.

Что такое команда, которая ничего не печатает?

У тебя есть pkg-config --libs --cflags libcurl в $() в вашем gcc Команда, которую вы говорите, работает. Но вы ссылались на pkg-config команда, которую вы запускаете, чтобы увидеть результат как pkg-config --cflags libcurl без--libs,

Возможно, вы просто запускаете другую команду внутри $() в gcc Команды, как вы отдельно, чтобы проверить вывод?

Чтобы уточнить, хотя man-страница немного запутана, реальное поведение этих двух команд отличается. Это с моей машины Ubuntu 11.10 amd64 с libcurl4-openssl-dev установлены:

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

ek@Apok:~$
Другие вопросы по тегам