在C语言中使用glib -正确调用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
有谁知道这个问题的解决方法吗?

pkg-config是一个用来打印所需的CFLAGSLIBS的工具,所以我在这里看到了一种"双重错误":

  1. 你可能读到的是给出一个参数,比如CFLAGS = `pkg-config --cflags glib-2.0`。注意这里的反引号,它们告诉shell运行命令并用命令的输出替换整个结构(shell的替代语法是$())。

  2. 即使使用反引号,这也不会在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)

最新更新