2016-04-30 5 views
-1

Я установил 2d-графическую библиотеку cairo, и затем я попытался скомпилировать простую программу, которая ее использует, но у меня было много проблем, например:Компиляция программы на языке C моя связь с внешней библиотекой

stroke.c:1:10: fatal error: 'cairo.h' file not found 
#include <cairo.h> 
     ^
1 error generated. 

Тогда я нашел эту статью:

http://cairographics.org/FAQ/

, где они в основном говорят, что мы должны указать компилятору, где cairo.h находится с помощью команды, как:

cc -o hello $(pkg-config --cflags --libs cairo) hello.c 

Это работало, т.е. hello.c был составлен и исполняемый был произведен, но я не понимаю этот синтаксис.

Что здесь означает $? Я думаю, это не связано с C, а с опцией bash. В чем смысл команды между ( и )?

+1

Ваш вопрос явно не связан с C! На самом деле это даже не связано с каиром. – Olaf

ответ

0

$(...) означает «выполнить прилагаемую команду и использовать ее выход». Это называется Замена команды (ранее backticks) и описано here.

Вложенная команда pkgconfig, которую вы можете запускать сама по себе, означает «пожалуйста, сообщите мне правильные флаги компилятора для пакета cairo».