libc.h: при компиляции примера конвейера nanomsg такого файла или каталога нет

Попытка запустить простой файл nanomsg, начиная с первого здесь: https://github.com/dysinger/nanomsg-examples

Установлено Nanomsg для /usr/local/lib/nanomsg-0.2-alpha, Ран sudo ./configure, sudo make check, sudo make install а также sudo ldconfig как сказано в инструкции. Все тесты проходят.

Когда я запускаю, он говорит, что 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? Я не занимался программированием на Си с колледжа. Это часть nanomsg или библиотека C?

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

2 ответа

Решение

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 в конце строки.

Попробуйте следующее:

$ 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
Другие вопросы по тегам