在C中使用glib - 在Makefile中正确调用pkg-config

时间:2015-10-08 22:32:04

标签: shell makefile pkg-config

我正在尝试用C创建一个Web服务器。我使用的glib库包含在我的.c文件中,语法为:

#include <glib.h>

为了能够使用该库,我在Makefile中添加了以下两行:

CFLAGS = 'pkg-config --cflags glib-2.0'
LDLIBS = 'pkg-config --libs glib-2.0'

但是当我从Shell编译时,我收到以下错误消息

gcc 'pkg-config --cflags glib-2.0'    httpd.c  'pkg-config --libs glib-2.0' -o httpd
gcc: error: pkg-config --cflags glib-2.0: No such file or directory
gcc: error: pkg-config --libs glib-2.0: No such file or directory
make: *** [httpd] Error 1

有没有人知道这个问题的解决方案?

2 个答案:

答案 0 :(得分:2)

pkg-config是一个用于将所需的 CFLAGS LIBS 打印到标准输出的工具,所以我看到了一种&#34;双重错误&#34 ;这里:

  1. 您可能阅读的内容是提供CFLAGS = `pkg-config --cflags glib-2.0`之类的参数。注意这里的反引号,它们告诉shell运行命令并用该命令的输出替换整个构造(shell的替代语法是$())。

  2. 即使使用反引号,这也不会在 Makefile 中有效,它与sh的语法不同。 GNU make 中的相应构造是$(shell ),所以只需写CFLAGS = $(shell pkg-config --cflags glib-2.0)

答案 1 :(得分:1)

根据您使用的品牌,您可能只需要:

CFLAGS = $(shell pkg-config --cflags glib-2.0)
LDLIBS = $(shell pkg-config --libs glib-2.0)