1

我正在尝试使用hiredisin编译客户CMac OS X

我已经安装hiredis了:

brew install hiredis

但仍然得到错误:

fatal error: 'hiredis.h' file not found

然而,我hiredis.h在:

/usr/local/include/hiredis/hiredis.c

我如何告诉编译器这个?

我正在编译:

gcc test.c -o test
4

2 回答 2

1

在您的问题中,您说hiredis.h的是 in /usr/local/include/hiredis/hiredis.c,这实际上没有任何意义。

假设你的意思是你hiredis.h/usr/local/include/hiredis. 你可以这样做:

gcc test.c -I/usr/local/include/hiredis -o test

阅读-I这篇SO 帖子

更新:

正如@EricPostpischil 在评论中提到的那样,最好只包括以下内容:

#include < hiredis/hiredis.h>

我仍然不确定是否/usr/local/include在默认包含路径中。如果是,则无需执行任何操作,只需编译如下:

gcc test.c -o test

如果不是,

gcc test.c -I/usr/local/include -o test
于 2019-08-22T11:02:42.910 回答
0

如果您安装hiredishomebrew,您可以看到包中的内容如下:

brew ls --verbose hiredis
/usr/local/Cellar/hiredis/0.14.0/INSTALL_RECEIPT.json
/usr/local/Cellar/hiredis/0.14.0/CHANGELOG.md
/usr/local/Cellar/hiredis/0.14.0/.brew/hiredis.rb
...
...
/usr/local/Cellar/hiredis/0.14.0/lib/libhiredis.dylib
/usr/local/Cellar/hiredis/0.14.0/lib/pkgconfig/hiredis.pc    <--- PKG-CONFIG
/usr/local/Cellar/hiredis/0.14.0/lib/libhiredis.a
/usr/local/Cellar/hiredis/0.14.0/lib/libhiredis.0.14.dylib
...
...

而且,如您所见,它为您提供了一个pkg-config文件,其中包含您需要的所有设置。因此,您不妨安装pkg-config并正确执行!

brew install pkg-config

现在,如果您想知道 的 C 编译器标志hiredis,请执行以下操作:

pkg-config --cflags hiredis
-D_FILE_OFFSET_BITS=64 -I/usr/local/Cellar/hiredis/0.14.0/include/hiredis

如果您想知道链接器设置,请执行以下操作:

pkg-config --libs hiredis
-L/usr/local/Cellar/hiredis/0.14.0/lib -lhiredis

因此,您的 compile-link 命令变得非常简单,并且在您更新软件包时会自行更新:

gcc-9 $(pkg-config --cflags --libs hiredis) -o program program.c
于 2019-08-22T12:39:04.833 回答