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