libc.h:编译nanomsg管道样本时没有这样的文件或目录

时间:2014-02-14 00:26:23

标签: c libc nanomsg

尝试运行一个简单的nanomsg文件,从第一个文件开始:https://github.com/dysinger/nanomsg-examples

安装nanomsg到/usr/local/lib/nanomsg-0.2-alpha。将sudo ./configuresudo make checksudo make installsudo ldconfig作为instructions said。所有测试都通过。

当我运行它时,说找不到libc.h:

$ gcc pipeline.c /usr/local/lib/libnanomsg.a -o pipeline
pipeline.c:2:18: fatal error: libc.h: No such file or directory
compilation terminated.

什么是libc.h?我从大学开始就没有做任何C编程。它是nanomsg还是C库的一部分?

$ which gcc
/usr/bin/gcc
Ubuntu 12.04.4 LTS

2 个答案:

答案 0 :(得分:8)

Libc.h只包含一小部分包含。要编译nanomsg样本足够(src):

更换:

#include <libc.h> 

#include <unistd.h>
#include <string.h>
#include <pthread.h>

我使用此cmd进行静态编译:

gcc -pthread bus.c ../nanomsg/.libs/libnanomsg.a -o test -lanl

注意-pthread和-lanl在行尾。

答案 1 :(得分:1)

尝试以下方法:

$ sudo updatedb
$ locate libc.h

找到libc.h所在的路径。例如,如果您的libc.h/usr/local/include

gcc -I/usr/local/include pipeline.c /usr/local/lib/libnanomsg.a -o pipeline