我正在尝试使用hiredis
in编译客户C
端Mac 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
在您的问题中,您说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
如果您安装hiredis
了homebrew,您可以看到包中的内容如下:
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