Почему "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:~$