我正在尝试用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
有没有人知道这个问题的解决方案?
答案 0 :(得分:2)
pkg-config
是一个用于将所需的 CFLAGS 和 LIBS 打印到标准输出的工具,所以我看到了一种&#34;双重错误&#34 ;这里:
您可能阅读的内容是提供CFLAGS = `pkg-config --cflags glib-2.0`
之类的参数。注意这里的反引号,它们告诉shell运行命令并用该命令的输出替换整个构造(shell的替代语法是$()
)。
即使使用反引号,这也不会在 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)