我正在尝试在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
有谁知道这个问题的解决方法吗? pkg-config
是一个用来打印所需的CFLAGS和LIBS的工具,所以我在这里看到了一种"双重错误":
-
你可能读到的是给出一个参数,比如
CFLAGS = `pkg-config --cflags glib-2.0`
。注意这里的反引号,它们告诉shell运行命令并用命令的输出替换整个结构(shell的替代语法是$()
)。 -
即使使用反引号,这也不会在Makefile中工作,它的语法与
sh
不同。GNU make中对应的构造是$(shell )
,所以直接写CFLAGS = $(shell pkg-config --cflags glib-2.0)
。
根据您使用的make,您可能只需要:
CFLAGS = $(shell pkg-config --cflags glib-2.0)
LDLIBS = $(shell pkg-config --libs glib-2.0)