Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

libc.h: No such file or directory when compiling nanomsg pipeline sample

Tags:

c

libc

nanomsg

Trying to get a simple nanomsg file running, starting with the first one here: https://github.com/dysinger/nanomsg-examples

Installed nanomsg to /usr/local/lib/nanomsg-0.2-alpha. Ran sudo ./configure, sudo make check, sudo make install and sudo ldconfig as the instructions said. All tests pass.

When I run it says libc.h is not found:

$ 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.

What is libc.h? I haven't done any C programming since college. Is it part of nanomsg or a C library?

$ which gcc
/usr/bin/gcc
Ubuntu 12.04.4 LTS
like image 791
jcollum Avatar asked Feb 14 '14 00:02

jcollum


2 Answers

Libc.h just contains small list of includes. To compile nanomsg sample its enough to (src):

Replacing:

#include <libc.h> 

with

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

I used this cmd for static compilation:

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

Note -pthread and -lanl at the end of line.

like image 184
Victor Laskin Avatar answered Sep 28 '22 16:09

Victor Laskin


try the following:

$ sudo updatedb
$ locate libc.h

find the path where libc.h located. eg, if your libc.h is /usr/local/include

gcc -I/usr/local/include pipeline.c /usr/local/lib/libnanomsg.a -o pipeline
like image 23
yongzhy Avatar answered Sep 28 '22 18:09

yongzhy